使用Sprintf 複製格式化字串中的變數值
在Go 中,fmt.Sprintf() 允許使用佔位符格式化字串,這些佔位符是替換為提供的值。雖然它通常為每個佔位符分配一個唯一的值,但通常需要用相同變數替換所有佔位符。
明確參數索引
要達成此目的,fmt.Sprintf () 使用明確參數索引。在格式字串中,將 [n] 放在格式化動詞之前可確保對第 n 個參數(從 1 開始索引)進行格式化,而不是預設的升序序列。同樣,放在 * 之前表示寬度或精度的 [n] 表示保存指定值的參數。
範例用法
考慮問題中提供的範例:
val := "foo" s := fmt.Sprintf("%v in %v is %v", val)
要在所有佔位符之間複製 val變量,請將格式字串修改為如下所示:
s := fmt.Sprintf("%[1]v in %[1]v is %[1]v", val)
這會產生所需的輸出:
"foo in foo is foo"
簡化符號
請注意,第一個明確參數索引可以是省略,因為它預設為1:
s := fmt.Sprintf("%v in %[1]v is %[1]v", val)
結論
利用明確參數索引,fmt.Sprintf()可用於以格式化格式在所有佔位符之間複製單一變數值string,並針對特定場景提供簡潔高效的解決方案。
以上是如何在 Go 的 fmt.Sprintf() 中的多個佔位符中重複單一變數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!