go函数类型


go函数类型

函数是一流的类型:

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)
}

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