首頁 >後端開發 >Golang >如何在 Go 的 fmt.Sprintf() 中的多個佔位符中重複單一變數?

如何在 Go 的 fmt.Sprintf() 中的多個佔位符中重複單一變數?

Susan Sarandon
Susan Sarandon原創
2024-12-21 12:53:21830瀏覽

How Can I Repeat a Single Variable Across Multiple Placeholders in Go's fmt.Sprintf()?

使用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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn