函数是一流的类型:
type Add func(a int, b int) int
可以使用在任何地方-比如结构体字段、参数或者一个返回值。
package main
import (
"fmt"
)
type Add func(a int, b int) int
func main() {
fmt.Println(process(func(a int, b int) int {
return a + b
}))
}
func process(adder Add) int {
return adder(1, 2)
}
像这样使用函数可以使你在一些特定实现时减少代码的耦合性,就像使用接口实现那样。