在傳統的 fmt.Sprintf() 用法中,變數被順序取代到格式化字串中。然而,在整個字串中複製單一變數是可行的。
利用明確參數索引,可以修改格式字串以引用多個相同的參數times:
val := "foo" s := fmt.Sprintf("%[1]v in %[1]v is %[1]v", val)
格式動詞之前的%[n] 表示法指定要使用的參數的索引。在本例中,%[1] 表示第一個參數 (val) 套用於佔位符的所有實例。
執行修改後的Sprintf:
fmt.Println(s)
產生:
foo in foo is foo
實際上,字串中的每個變數佔位符都是替換為val 的值,得到所需的複製。
對於第一個參數應一致使用的特定場景,可以省略%[1] 索引:
fmt.Sprintf("%v in %[1]v is %[1]v", "foo")
此縮寫語法簡化了格式字元串,同時仍實現相同的複製功能。
以上是如何使用參數索引在 Go 的 fmt.Sprintf 中重複變數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!