高效引用fmt.Sprintf 中的參數
要使用fmt.Sprintf 準確格式化Go 中的字串,了解參數如何映射到格式化動詞。預設情況下,每個動詞都會格式化下一個可用參數,從而建立順序關係。
但是,您可以透過使用明確參數索引來克服多次傳遞相同參數的需要。在格式化動詞前面加上 [n],其中 n 表示要格式化的參數的單一索引位置。
此技術在 getTableCreationCommands 等函數中特別有用。您可以將變數v 傳遞一次並在fmt.Sprintf 字串中引用它,而不是四次傳遞變數v,如下所示:
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)
在此範例中,我們傳遞字串s 一次並使用參數索引[ 1] 在格式化字串中引用它。這種方法簡化了格式化過程,減少了程式碼重複,並增強了可維護性。
這是一個完整的範例:
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);
以上是如何有效率地引用Go的fmt.Sprintf中的參數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!