従来の fmt.Sprintf() の使用法では、変数はフォーマットされた文字列に順次置換されます。ただし、文字列全体で単一の変数を複製することは可能です。
明示的な引数インデックスを利用して、同じ引数を複数参照するように書式文字列を変更できます。回:
val := "foo" s := fmt.Sprintf("%[1]v in %[1]v is %[1]v", val)
フォーマット動詞の前の %[n] 表記は、引数のインデックスを指定します。使用されます。この場合、%[1] は、プレースホルダーのすべてのインスタンスに最初の引数 (val) を使用する必要があることを示します。
変更された Sprintf の実行:
fmt.Println(s)
生成:
foo in foo is foo
事実上、文字列内のすべての変数プレースホールドは、
最初の引数を一貫して使用する必要がある特定のシナリオでは、%[1] インデックスを省略できます。
fmt.Sprintf("%v in %[1]v is %[1]v", "foo")
この省略された構文は、同じレプリケーション機能を実現しながら、書式設定文字列を簡素化します。
以上が引数インデックスを使用して Go の fmt.Sprintf で変数を繰り返すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。