在golang中可以使用Tytp来对func进行限制,并且在另一个func作为参数调用。下面是一个简单的示例
//使用type定义一个func的
type test func(i, j int) int
func main() {
useTest(setTest, 1, 1)
}
//调用func
func useTest(work test, i, j int) int {
return work(i, j)
}
//func的实现
func setTest(i, j int) int {
return i + j
}
示例中的test是被规定的方法模版,由setTest实现(可以有多个实现)。setTest方法可以由需要方来添加具体操作内容。
useTest作为调用方会接受一个由test规定的方法作为参数,而test的参数由useTest来提供。对test的操作也是在useTest中实现的。
main就是作为使用方来调用