Go言語 - 関数を引数にする関数
関数MyMapIntの第一引数は、一つのintを引数にして、intを返す関数。
package main import ( "fmt" ) func MyMapInt(fn func(int) int, sl []int) (ret []int) { ret = make([]int, 0, len(sl)) for _, n := range sl { ret = append(ret, fn(n)) } return } func twice(x int) int { return x*2 } func square(x int) int { return x*x } func main() { a := []int{1, 2, 3, 4, 5} fmt.Println(MyMapInt(twice, a)) //-> [2 4 6 8 10] fmt.Println(MyMapInt(square, a)) //-> [1 4 9 16 25] }