Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Go 如何格式化包含动态元素数的字符串?_Go_Gofmt - Fatal编程技术网

Go 如何格式化包含动态元素数的字符串?

Go 如何格式化包含动态元素数的字符串?,go,gofmt,Go,Gofmt,我试图根据从调用字符串的函数接收到的元素格式化字符串。元素的数量可以从一个变为多个 有没有一种方法可以使用可变数量的元素调用fmt.Sprintf。大致如下: receivedElements := []interface{}{"some","values"} formattedString := fmt.Sprintf("Received elements: ...%s", receivedElements...) Output: Received elements: some values

我试图根据从调用字符串的函数接收到的元素格式化字符串。元素的数量可以从一个变为多个

有没有一种方法可以使用可变数量的元素调用fmt.Sprintf。大致如下:

receivedElements := []interface{}{"some","values"}
formattedString := fmt.Sprintf("Received elements: ...%s", receivedElements...)

Output: Received elements: some values
您可以这样使用:

args := []interface{}{"some", "values"}
fmt.Println(fmt.Sprintf("values: " + strings.Repeat("%s ", len(args)), args...))

或者,如果不想在行中保留最后一个空格,可以创建
%s
的切片,然后使用


fmt的功能在its中指定,您要查找的内容不在那里,至少我找不到。这意味着,如果按原样传递切片还不够好,则必须编写自己的解决方案。此外,如果当您将切片传递给
fmt
时,所有困扰您的都是值周围的方括号,则始终可以将这些方括号切掉
args := []interface{}{"some", "values"}
ph := make([]string, len(args))
for i, _ := range args {
    ph[i] = "%s"
}
fmt.Println(fmt.Sprintf("values: " + strings.Join(ph, ", "), args...))