首頁 > 後端開發 > Golang > 如何將 Go Sprintf 字串中的所有變數替換為相同的值?

如何將 Go Sprintf 字串中的所有變數替換為相同的值?

Linda Hamilton
發布: 2024-12-13 05:32:09
原創
131 人瀏覽過

How Can I Replace All Variables in a Go Sprintf String with the Same Value?

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板