format - fmt.Sprintf 传递参数数组

标签 format go

对不起,基本问题。我想将 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/

相关文章:

java - 如何确定 Joda DateTimeFormatter 是 12 小时制还是 24 小时制?

Java DecimalFormat 省略小数点前的前导零

json - 如何在 golang 中解码 JSON

pointers - 在结构中使用指针是否有缺点?

file - 在 Go 中写入文件中的字节范围

c++ - 如何将 double 格式格式化为十六进制?

python - Julia 字符串格式 "if"

svn - 如何在存储库中重新创建 SVN 'format' 文件?

sql - 将 int 转换为 int32

linux - go1.6 File方法WriteString频繁调用导致系统缓存大