我想编写一个将函数部分应用于参数的函数,如下所示:
func partial(f AnyFuncType, arg interface{}) AnyFuncType {
return func(args ...interface{}) interface{} {
return f(arg, args)
}
}
type AnyFuncType func(args ...interface{}) interface{}
但是即使使用像这样最简单的功能也不起作用
func sum(a int, b int) int {
return a + b
}
func main() {
addToFive := partial(sum, 5)
}
因为我得到
./prog.go:16:23: cannot use sum (type func(int, int) int) as type AnyFuncType in argument to partial
编译错误。现在,我知道我可以使用 interface{},但是有没有办法为 f 指定一个更精确的类型,它可以与任何函数一起使用?
米琪卡哇伊
回首忆惘然
12345678_0001
相关分类