有没有办法制作一个函数指针映射表,但是这些函数需要接收者?我知道如何处理常规函数:
但是你能用需要接收器的函数来做到这一点吗?就像这样(尽管我尝试过这个,但它不起作用):
一个显而易见的解决方法是将结构体作为参数传递,但这比我想象中要麻烦一些。
package main
func someFunc(x int) int {
return x
}
func main() {
m := make(map[string]func(int)int, 0)
m["1"] = someFunc
print(m["1"](56))
}
但是你能用需要接收器的函数来做到这一点吗?就像这样(尽管我尝试过这个,但它不起作用):
package main
type someStruct struct {
x int
}
func (s someStruct) someFunc() int {
return s.x
}
func main() {
m := make(map[string](someStruct)func()int, 0)
s := someStruct{56}
m["1"] = someFunc
print(s.m["1"]())
}
一个显而易见的解决方法是将结构体作为参数传递,但这比我想象中要麻烦一些。