RosettaCodeData/Task/Apply-a-callback-to-an-array/Go/apply-a-callback-to-an-arra...

32 lines
464 B
Go

package main
import "fmt"
type intSlice []int
func (s intSlice) each(f func(int)) {
for _, i := range s {
f(i)
}
}
func (s intSlice) Map(f func(int) int) intSlice {
r := make(intSlice, len(s))
for j, i := range s {
r[j] = f(i)
}
return r
}
func main() {
s := intSlice{1, 2, 3, 4, 5}
s.each(func(i int) {
fmt.Println(i * i)
})
fmt.Println(s.Map(func(i int) int {
return i * i
}))
}