我正在嘗試根據(jù)從調(diào)用它的函數(shù)接收到的元素來格式化字符串。元素的數(shù)量可以從一個到多個不等。有沒有辦法用可變數(shù)量的元素調(diào)用 fmt.Sprintf 。大致如下:receivedElements := []interface{}{"some","values"}formattedString := fmt.Sprintf("Received elements: ...%s", receivedElements...)Output: Received elements: some values
1 回答

守著星空守著你
TA貢獻(xiàn)1799條經(jīng)驗(yàn) 獲得超8個贊
您可以像這樣使用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
或者,如果您不想在行中留有最后一個空格,您可以創(chuàng)建切片%s,然后使用https://golang.org/pkg/strings/#Join
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...))
https://play.golang.org/p/QNZT-i9Rrgn
- 1 回答
- 0 關(guān)注
- 109 瀏覽
添加回答
舉報(bào)
0/150
提交
取消