使用Sprintf 進行相同值替換
在Sprintf 中,可以用相同的值替換格式化字串中的所有變量,但是需要修改格式字串。
明確參數索引
關鍵是在每個格式化動詞之前使用明確參數索引。這允許您指定應該使用哪個參數來進行特定的替換。在 Printf、Sprintf 和 Fprintf 中,預設行為是依序使用傳遞的參數。但是,顯式參數索引(由 [n] 表示)可讓您選擇特定的參數索引。
範例
考慮以下範例:
val := "foo" s := fmt.Sprintf("%[1]v in %[1]v is %[1]v", val) fmt.Println(s)
在這裡,我們在每個格式化動詞之前使用明確參數索引[1 ]。這指示 Sprintf 對所有三個替換使用第一個參數,即 val。結果,輸出將是:
foo in foo is foo
單行簡化
上面的範例可以簡化為單行:
fmt.Printf("%[1]v in %[1]v is %[1]v", "foo")
省略第一個Index
此外,您可以省略第一個顯式參數索引,因為它自動預設為1:
fmt.Printf("%v in %[1]v is %[1]v", "foo")
透過瞭解顯式參數索引,您可以為Sprintf 中的多次替換,無論格式說明符的數量為何。
以上是如何將 Go Sprintf 字串中的所有變數替換為相同的值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!