匿名函数和字面量函数一样,
凡是可以使用字面量函数的地方,都可以用匿名函数代替。
这个和js中的匿名函数差不多吧。
package main import "fmt" var sum = func(a, b int) int { return a + b } func doinput(f func(int, int) int, a, b int) int { return f(a, b) } func wrap(op string) func(int, int) int { switch op { case "add": return func(a, b int) int { return a + b } case "sub": return func(a, b int) int { return a - b } default: return nil } } func main() { defer func() { if err := recover(); err!= nil { fmt.Println(err) } }() fmt.Println(sum(1, 2)) re := doinput(func(x, y int) int { return x + y }, 1, 2) fmt.Printf("%d\n", re) opFunc := wrap("add") re = opFunc(2, 3) fmt.Printf("%d\n", re) }