fmt.Sprintf で同じパラメータを効率的に参照する
fmt.Sprintf を使用する場合、次のことが必要な状況に遭遇することがよくあります。フォーマット文字列内で同じパラメータを複数回参照します。パラメータの複製は簡単そうに見えますが、効率が悪く、冗長なコードが発生する可能性があります。
解決策: 明示的な引数インデックスの利用
この問題に対処するために、fmt.Sprintf は以下を提供します。これは「明示的な引数インデックス付け」として知られる解決策です。この手法を使用すると、フォーマット文字列内のインデックスによって特定の引数を参照できます。書式設定動詞の直前に書式指定子 [n] を使用すると、どの引数を書式設定するかを指定できます。
たとえば、次のコードを考えてみましょう。
package main import "fmt" func main() { v := "X" // Use explicit argument indexing to reference v four times fmt.Printf( `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, v, v, v, ) }
この例では、 v を 4 回渡す代わりに、フォーマット文字列内で [1]v を使用します。これにより、最初の引数が 4 回事実上参照されます。結果は、簡潔で効率的なフォーマット文字列になります。
CREATE TABLE share_X PARTITION OF share FOR VALUES IN (X); CREATE TABLE nearby_X PARTITION OF nearby FOR VALUES IN (X);
明示的な引数のインデックス作成の利点
明示的な引数のインデックス作成を使用すると、次のような利点があります。
結論
fmt.Sprintf の明示的な引数インデックス付けは、効率的で柔軟な方法を提供しますフォーマット文字列内で同じパラメータを複数回参照します。この手法はコードを簡素化するだけでなくパフォーマンスも向上させるため、Go で文字列の書式設定を操作するための貴重なツールになります。
以上がfmt.Sprintf で同じパラメータを効率的に複数回参照するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。