如何在fmt.Sprintf 格式字串中多次引用相同的參數
在Go 中,fmt 套件提供了一種便捷的方法使用Sprintf 函數格式化字串。但是,在格式字串中多次指定相同的參數可能會很麻煩。
考慮以下範例:
func getTableCreationCommands(v string) string { return ` CREATE TABLE share_` + v + ` PARTITION OF share FOR VALUES IN (` + v + `); CREATE TABLE nearby_` + v + ` PARTITION OF nearby FOR VALUES IN (` + v + `); ` }
這裡,我們必須將參數 'v' 重複四次建立 SQL 指令的時間。我們可以使用顯式參數索引在格式字串中多次引用相同參數,而不是這種冗長的方法。
import "fmt" func getTableCreationCommands(s string) string { return fmt.Sprintf(` CREATE TABLE share_%[1]v PARTITION OF share FOR VALUES IN (%[1]v); CREATE TABLE nearby_%[1]v PARTITION OF nearby FOR VALUES IN (%[1]v); `, s) } func main() { fmt.Println(getTableCreationCommands("X")) }
在此修改後的函數中,我們將參數索引[1] 括在方括號內在格式化動詞(%v) 之前,表示我們要使用傳遞給Sprintf 的第一個參數,在本例中是字串“X”。此程式碼片段的 Playground 連結是 https://play.golang.org/p/fKV3iviuwll。
使用顯式參數索引允許我們僅傳遞參數一次,並根據需要在格式字串中引用它,從而產生以更簡潔和可讀的實現方式。
以上是如何在 Go fmt.Sprintf 格式字串中多次重複使用相同的參數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!