go - 如何在函数中传递动态参数

标签 go

我在做什么

 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/

相关文章:

godep save ./... 似乎不适用于 https ://github. com/hashicorp/terraform

xml - 如何将字符串转换为函数名

go - 如何将 []byte 转换为 C 十六进制格式 0x...?

memory - 使用 golang 测量可执行运行的内存使用情况

mysql - 去使用连接池连接mysql发生socket leak

go - 为任何客户端创建 HTTPS 测试服务器

arrays - DeepEqual 以不同方式对待用反勾初始化的数组?

go mod vendors 旧版本的依赖

validation - 如何根据 http 方法类型设置不同的验证约束?

Golang 服务静态文件,请解释这 3 行代码中发生了什么