Go の Python 文字列フォーマットと同等: 探索
Python には、値を便利に挿入するための string.format メソッドがあります。フォーマットされた文字列。ただし、Go の fmt.Sprintf 関数では、パラメーターが書式文字列内のプレースホルダーと同じ順序で出現する必要があります。これは、引数の順序が頻繁に並べ替えられる国際化 (I18N) シナリオに制限をもたらします。
より柔軟なオプションを目指して
問題は残っています: より多くのオプションを見つけることができるか引数を任意の順序で渡すことができる Go の柔軟なソリューションは?
Strings.Replacer
strings.Replacer パッケージを利用すると、コンパクトでカスタマイズ可能なフォーマッタを作成できます。基本的に、Replacer を使用して、書式文字列内のプレースホルダーを適切な値に置き換えます。これにより、引数の順序が柔軟になり、プロセスが簡単になります。
テキスト/テンプレートの利用
もう 1 つのオプションには、テキスト/テンプレート パッケージが含まれます。単純なエラー メッセージの場合は冗長に見えるかもしれませんが、テンプレート ソリューションは、複雑な構造を持つ書式設定されたテキストを生成する場合に非常に役立ちます。書式設定プロセスをきめ細かく制御できるため、さまざまなシナリオに多用途に使用できます。
明示的な引数インデックスの利用
Go は明示的な引数インデックスの使用もサポートしており、複数の引数を許可します。同じパラメータのプレースホルダ。この機能は、別の質問で説明されています: Sprintf のすべての変数を同じ変数に置き換えます。
結論
調査に基づくと、書式設定アプローチの選択は明らかです。 Go での動作は、アプリケーションの特定の要件によって異なります。各ソリューションには独自の長所と短所があり、プロジェクトのニーズに合わせて柔軟にカスタマイズされたソリューションが保証されます。
以上がPython の「string.format」のような柔軟な文字列フォーマットを Go で実現するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。