recursions
This commit is contained in:
3
anon-functions/go.mod
Normal file
3
anon-functions/go.mod
Normal file
@@ -0,0 +1,3 @@
|
||||
module example.com/anon-functions
|
||||
|
||||
go 1.23.1
|
||||
38
anon-functions/main.go
Normal file
38
anon-functions/main.go
Normal file
@@ -0,0 +1,38 @@
|
||||
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
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user