对不起,基本问题。我想将 slice 作为参数传递给 fmt.Sprintf
。像这样的:
values := []string{"foo", "bar", "baz"}
result := fmt.Sprintf("%s%s%s", values...)
结果会是foobarbaz
,但这显然行不通。
(我要格式化的字符串比这更复杂,所以简单的串联是行不通的:)
所以问题是:如果我有一个数组,我如何将它作为单独的参数传递给 fmt.Sprintf
?或者:我可以在 Go 中调用传递参数列表的函数吗?
最佳答案
正如您在 IRC 上发现的那样,这将起作用:
values := []interface{}{"foo", "bar", "baz"}
result := fmt.Sprintf("%s%s%s", values...)
您的原始代码不起作用,因为 fmt.Sprintf
接受 []interface{}
而 []string
不能隐式或显式转换为该类型。
关于format - fmt.Sprintf 传递参数数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7145905/