一尘不染

转到功能图

go

我有定义功能的Go程序。我也有一个地图,每个功能都应该有一个键。我怎样才能做到这一点?

我已经尝试过了,但这是行不通的。

func a(参数字符串){

}

m:= map [string] func {
    'a_func':一个,
}

对于键,值:=范围m {
   如果key =='a_func'{
    值(参数) 
   }
}

阅读 230

收藏
2020-07-02

共1个答案

一尘不染

您是否正在尝试做这样的事情?我已经修改了示例,以使用各种类型和数量的函数参数。

package main

import "fmt"

func f(p string) {
    fmt.Println("function f parameter:", p)
}

func g(p string, q int) {
    fmt.Println("function g parameters:", p, q)
}

func main() {
    m := map[string]interface{}{
        "f": f,
        "g": g,
    }
    for k, v := range m {
        switch k {
        case "f":
            v.(func(string))("astring")
        case "g":
            v.(func(string, int))("astring", 42)
        }
    }
}
2020-07-02