ホームページ >バックエンド開発 >Golang >fmt.Sprintf() のすべての変数を同じ値に置き換えるにはどうすればよいですか?

fmt.Sprintf() のすべての変数を同じ値に置き換えるにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-13 10:09:10323ブラウズ

How Can I Replace All Variables in fmt.Sprintf() with the Same Value?

Sprintf の個々の変数を同じ値に置き換える

fmt.Sprintf() では、引数のインデックスは表記法 [n を使用して明示的に指定できます。 ] を使用すると、書式設定された文字列内の異なる位置で異なる変数を置き換えることができます。ただし、このアプローチを使用してすべての変数を同じ値に置き換えるには、形式文字列を少し変更する必要があります。

解決策:

連続する引数に依存する代わりに、次のようにします。各書式設定動詞の前に括弧で囲まれた引数インデックスを付けて、同じ引数を使用する必要があることを示します:

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

この書式文字列はその引数を指定しますインデックス 1 は 3 つのフォーマット動詞すべてに使用する必要があり、結果は次のようになります。

"foo in foo is foo"

簡易オプション:

最初の明示的な引数インデックスは、デフォルトであるため省略できます。 to 1:

fmt.Printf("%v in %[1]v is %[1]v", "foo")

さらに、括弧と引数インデックスを 1 つに結合できます。文字列:

fmt.Printf("%v in %1v is %1v", "foo")

結論:

明示的な引数インデックスを使用すると、fmt.Sprintf() 内のすべての変数を同じ値に置き換えることができます。文字列のフォーマットの柔軟性が向上しました。

以上がfmt.Sprintf() のすべての変数を同じ値に置き換えるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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