首頁  >  文章  >  後端開發  >  如何在 fmt.Sprintf 格式字串中多次引用相同的參數?

如何在 fmt.Sprintf 格式字串中多次引用相同的參數?

Susan Sarandon
Susan Sarandon原創
2024-11-07 16:38:02727瀏覽

How to Reference the Same Parameter Multiple Times in fmt.Sprintf Format Strings?

在fmt.Sprintf 格式字串中多次引用相同的參數

在給定的程式碼片段中,您有一個生成SQL 指令的函式使用fmt.Sprintf 建立表格。雖然原始方法很冗長,但您希望有一種方法僅引用 v 參數一次以獲得更好的字串格式。

根據 fmt.Sprintf 的文件:

在 Printf、Sprintf 和Fprintf,預設行為是每個格式化動詞格式化呼叫中傳遞的連續參數。然而,動詞前面的符號 [n] 表示第 n 個單索引參數將會被格式化。

這表示您可以傳遞 v 變數一次並使用[n] 表示法指定要格式化的參數索引。例如,您更新的函數可以是:

func getTableCreationCommands(v string) string {
    return fmt.Sprintf(`
        CREATE TABLE share_%[1]v PARTITION OF share FOR VALUES IN (%[1]v);
        CREATE TABLE nearby_%[1]v PARTITION OF nearby FOR VALUES IN (%[1]v);
    `, v)
}

這裡,%[1]v 告訴格式化程式使用第一個參數,即 v,兩次。

要使用此函數:

import "fmt"

func main() {
    s := "X"
    fmt.Println(getTableCreationCommands(s))
}

輸出:

CREATE TABLE share_X PARTITION OF share FOR VALUES IN (X);
CREATE TABLE nearby_X PARTITION OF nearby FOR VALUES IN (X);

此方法提供了一種更清晰、更簡潔的方式來透過對相同參數的多個引用來格式化SQL 指令。

以上是如何在 fmt.Sprintf 格式字串中多次引用相同的參數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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