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

我正在尝试根据从调用它的函数接收到的元素来格式化字符串。元素的数量可以从一个到多个不等。


有没有办法用可变数量的元素调用 fmt.Sprintf 。大致如下:


receivedElements := []interface{}{"some","values"}

formattedString := fmt.Sprintf("Received elements: ...%s", receivedElements...)


Output: Received elements: some values


莫回无
浏览 88回答 1
1回答

守着星空守着你

您可以像这样使用https://golang.org/pkg/strings/#Repeat :args := []interface{}{"some", "values"}fmt.Println(fmt.Sprintf("values: " + strings.Repeat("%s ", len(args)), args...))https://play.golang.org/p/75J6i2fSCaM或者,如果您不想在行中留有最后一个空格,您可以创建切片%s,然后使用https://golang.org/pkg/strings/#Joinargs := []interface{}{"some", "values"}ph := make([]string, len(args))for i, _ := range args {    ph[i] = "%s"}fmt.Println(fmt.Sprintf("values: " + strings.Join(ph, ", "), args...))https://play.golang.org/p/QNZT-i9Rrgn
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go