5.7 函数类型

函数是一流的类型:

  1. type Add func(a int, b int) int

可以使用在任何地方-比如结构体字段、参数或者一个返回值。

  1. package main
  2. import (
  3. "fmt"
  4. )
  5. type Add func(a int, b int) int
  6. func main() {
  7. fmt.Println(process(func(a int, b int) int {
  8. return a + b
  9. }))
  10. }
  11. func process(adder Add) int {
  12. return adder(1, 2)
  13. }

像这样使用函数可以使你在一些特定实现时减少代码的耦合性,就像使用接口实现那样。

链接