ホームページ >バックエンド開発 >Golang >引数インデックスを使用して Go の fmt.Sprintf で変数を繰り返すにはどうすればよいですか?

引数インデックスを使用して Go の fmt.Sprintf で変数を繰り返すにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-30 10:59:18871ブラウズ

How Can I Repeat a Variable in Go's fmt.Sprintf Using Argument Indexes?

明示的な引数インデックスを使用した Sprintf での変数の複製

従来の fmt.Sprintf() の使用法では、変数はフォーマットされた文字列に順次置換されます。ただし、文字列全体で単一の変数を複製することは可能です。

解決策

明示的な引数インデックスを利用して、同じ引数を複数参照するように書式文字列を変更できます。回:

val := "foo"
s := fmt.Sprintf("%[1]v in %[1]v is %[1]v", val)

フォーマット動詞の前の %[n] 表記は、引数のインデックスを指定します。使用されます。この場合、%[1] は、プレースホルダーのすべてのインスタンスに最初の引数 (val) を使用する必要があることを示します。

Output

変更された 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。