【发布时间】:2019-11-15 06:32:42
【问题描述】:
我知道可以为特定类型创建方法
例子
type MyFunc func() int
func (f MyFunc) eval() int {
return f()
}
func main() {
var randomFunction MyFunc = func() int {
return 1;
}
fmt.Println(randomFunction.eval()) // prints 1
}
但是randomFunction 必须声明为MyFunc 类型。如果声明看起来像
randomFunction := func() int {
return 1;
}
方法调用不会起作用。
我的问题是,例如,是否可以为 func () int 类型的每个函数创建方法。
我知道 Go 不是函数式的,也不包含太多函数式习语,但我正在寻找一种类似于 Haskell 的函数显示实例的方法:
instance Show (Int -> Int) where
show op = show "Function with 1 Int param and Int return type"
【问题讨论】: