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