在fmt.Sprintf 格式字串中多次引用參數
在您的程式碼中,您有一個使用fmt 建立表建立命令的函數。斯普林特夫。您希望避免多次傳遞相同的參數。
使用顯式參數索引的解決方案
根據fmt.Printf 及相關函數的文檔,可以使用顯式參數索引用於格式化第n 個參數的參數索引:
func getTableCreationCommands(s 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); `, s) }
在格式字串中,%[1]v 指第一個參數s。
範例
這是使用此方法的範例:
package main import "fmt" func getTableCreationCommands(s 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); `, s) } func main() { fmt.Println(getTableCreationCommands("X")) }
輸出:
CREATE TABLE share_X PARTITION OF share FOR VALUES IN (X); CREATE TABLE nearby_X PARTITION OF nearby FOR VALUES IN (X);輸出:透過使用顯式式參數索引,您可以多次引用相同參數,而無需單獨傳遞它。
以上是如何在 fmt.Sprintf 格式字串中多次引用參數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!