fmt.Sprintf传递参数数组

对不起这个基本问题。我想将一个切片作为参数传递给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接受a []interface{}并且[]string无法将其隐式或显式转换为该类型。

以上是 fmt.Sprintf传递参数数组 的全部内容, 来源链接: utcz.com/qa/430350.html

回到顶部