我在做什么
func foo(a string) {}
func bar(b, c string)
type fn func(string)
m: = map[string] fn {
"a": "foo",
"b": "bar"
}
什么是输出
当我这样调用函数时
m["a"]("Hello")
m["b"]("Hello", "World")
我得到一个错误,因为 type fn func(string)
这里 fn 有一个参数,但我在 m["b"]("Hello", "World") 中传递了两个参数
Error : [ cannot use (type func(string, string)) as type fn in map value ]
我在找什么
我想制作动态的type fn func(string)
这样我就可以传递参数的数量这样我就可以像这样调用
m["a"]("Hello")
m["b"]("Hello", "World")
最佳答案
创建一个可变参数函数,它将任意数量的参数作为参数传递给函数。
func foo(nums ...string) {}
m:= map[string]fn{
"a": "foo",
"b": "bar"
}
有关可变参数函数的更多信息,请查看此 Answer
关于go - 如何在函数中传递动态参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49148521/