如何使用功能作为地图的键?例如:
type Action func(int) func test(a int) { } func test2(a int) { } func main() { x := map[Action]bool{} x[test] = true x[test2] = false }
这些代码将显示错误: invalid map key type Action
invalid map key type Action
您可以使用reflect。
reflect
import ( "reflect" "math" ) func foo () { table := make(map[uintptr] string) table[reflect.ValueOf(math.Sin)] = "Sin" table[reflect.ValueOf(math.Cos)] = "Cos" println(table[reflect.ValueOf(math.Cos)]) }