Files
noahspan-go/anon-functions/main.go
2024-10-23 16:28:28 +00:00

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
}
}