fmt.Sprintf传递一组参数

mor*_*aes 13 format go

对不起基本问题.我想把一个切片作为参数传递给fmt.Sprintf.像这样的东西:

values := []string{"foo", "bar", "baz"}
result := fmt.Sprintf("%s%s%s", values...)
Run Code Online (Sandbox Code Playgroud)

结果会是foobarbaz,但这显然不起作用.

(我想格式化的字符串比这更复杂,所以简单的连接不会这样做:)

所以问题是:如果我有数组,我怎么能把它作为单独的参数传递给fmt.Sprintf?或者:我可以在Go中调用一个传递参数列表的函数吗?

Eva*_*haw 15

正如您在IRC上发现的那样,这将有效:

values := []interface{}{"foo", "bar", "baz"}
result := fmt.Sprintf("%s%s%s", values...)
Run Code Online (Sandbox Code Playgroud)

您的原始代码不起作用,因为fmt.Sprintf接受a []interface{}并且[]string无法隐式或显式地转换为该类型.