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