fmt.Sprintf 形式の文字列で同じパラメータを複数回参照する方法
Go では、fmt パッケージが便利な方法を提供しますSprintf 関数を使用して文字列をフォーマットするには。ただし、フォーマット文字列内で同じパラメータを複数回指定するのは面倒な場合があります。
次の例を考えてみましょう:
func getTableCreationCommands(v string) string { return ` CREATE TABLE share_` + v + ` PARTITION OF share FOR VALUES IN (` + v + `); CREATE TABLE nearby_` + v + ` PARTITION OF nearby FOR VALUES IN (` + v + `); ` }
ここでは、パラメータ 'v' を 4 回繰り返す必要があります。 SQL コマンドの作成に時間がかかります。この冗長なアプローチの代わりに、明示的な引数インデックスを使用して、フォーマット文字列内で同じパラメータを複数回参照できます。
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")) }
この変更された関数では、引数インデックス [1] を角括弧で囲みます。書式設定動詞 (%v) の前に、Sprintf に渡される最初の引数 (この場合は文字列 "X") を使用することを示します。このスニペットの Playground リンクは https://play.golang.org/p/fKV3iviuwll です。
明示的な引数インデックスを使用すると、パラメータを 1 回だけ渡し、フォーマット文字列内で必要に応じて参照できるようになります。より簡潔で読みやすい実装になります。
以上がGo fmt.Sprintf フォーマット文字列で同じパラメータを複数回再利用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。