38 lines
702 B
Go
38 lines
702 B
Go
package main
|
|
|
|
import "fmt"
|
|
|
|
func main() {
|
|
numbers := []int{1, 2, 3}
|
|
|
|
double := createTransformer(2)
|
|
triple := createTransformer(3)
|
|
|
|
transformed := transformNumbers(&numbers, func (number int) int {
|
|
return number * 2
|
|
})
|
|
|
|
doubled := transformNumbers(&numbers, double)
|
|
tripled := transformNumbers(&numbers, triple)
|
|
|
|
fmt.Println(transformed)
|
|
|
|
fmt.Println(doubled)
|
|
fmt.Println(tripled)
|
|
}
|
|
|
|
func transformNumbers(numbers *[]int, transform func(int) int) []int {
|
|
dNumbers := []int{}
|
|
|
|
for _, val := range *numbers {
|
|
dNumbers = append(dNumbers, transform(val))
|
|
}
|
|
|
|
return dNumbers
|
|
}
|
|
|
|
func createTransformer(factor int) func(int) int {
|
|
return func(number int) int {
|
|
return number * factor
|
|
}
|
|
} |