ホームページ > バックエンド開発 > Golang > fmt.Sprintf で追加フィールドを処理するには?

fmt.Sprintf で追加フィールドを処理するには?

DDD
リリース: 2024-11-01 16:44:31
オリジナル
1078 人が閲覧しました

How to Handle Extra Fields in fmt.Sprintf?

fmt.Sprintf での追加フィールドの処理

問題:
fmt.Sprintf を使用して文字列をフォーマットする場合、余分なフィールドはパニックエラーを引き起こす可能性があります。たとえば、「hello %s」のような文字列テンプレートを使用して「Hello Friends」のような完全な文字列を書式設定しようとすると、「Hello Friends%!(EXTRA string=world)」のようなエラーが発生します。 fmt.Sprintf の余分なフィールドを無視するにはどうすればよいですか?

解決策:
fmt.Sprintf の余分なフィールドを無視する直接的な方法はありませんが、1 つの方法は特定の動詞を強制することです。要件。この場合、コマンド ライン引数に常に %s 動詞を指定するようユーザーに要求できます。実際の書式設定がない場合を処理するには、ユーザーは文字列を長さ 0 に切り詰めることができます:

<code class="go">Hello Friends%.0s</code>
ログイン後にコピー

または、さらに短くすることもできます:

<code class="go">Hello Friends%.s</code>
ログイン後にコピー

これにより、プレーンな出力が生成されます:

Hello Friends
ログイン後にコピー

この規則に従うことで、sprintf 形式文字列内の予期しない追加フィールドによって引き起こされるエラーを回避できます。

以上がfmt.Sprintf で追加フィールドを処理するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート