fmt.Sprintf でのパラメータの効率的な参照
fmt.Sprintf を使用して Go で文字列を正確にフォーマットするには、引数がどのようにマッピングされるかを理解することが重要です。動詞のフォーマット。デフォルトでは、各動詞は次に使用可能な引数をフォーマットし、順次関係を作成します。
ただし、明示的な引数インデックスを使用すると、同じパラメータを複数回渡す必要性を克服できます。書式設定動詞の前に [n] を付けます。n は、書式設定する引数の 1 つのインデックス付き位置を表します。
この手法は、getTableCreationCommands などの関数で特に役立ちます。変数 v を 4 回渡す代わりに、変数 v を 1 回渡して、次のように fmt.Sprintf 文字列内で参照できます。
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 回渡し、引数インデックス [ 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 中国語 Web サイトの他の関連記事を参照してください。