Go プログラミングでは、fmt.Sprintf 関数を使用して文字列をフォーマットします。ただし、入力文字列に予期しないフィールドが含まれている場合に問題が発生し、パニックが発生します。
次のコード スニペットを考えてみましょう。
<code class="go">package main import "fmt" func main() { tmp_str := "hello %s" str := fmt.Sprintf(tmp_str, "world") fmt.Println(str) }</code>
この例では, tmp_str は、単一の引数を必要とするテンプレート文字列です。ただし、プログラムが (テンプレートではなく) "Hello Friends" のような完全な文字列を受け取った場合、余分な引数が存在するために fmt.Sprintf はパニックを起こします。エラー メッセージは次のようになります。
Hello Friends%!(EXTRA string=world)
この問題を処理する 1 つの方法は、テンプレート文字列で有効な %s 動詞の使用を強制することです。ユーザーは、%.0s や %.s などのプレースホルダー動詞を指定して、一致するフィールドが存在しない場合に引数が長さ 0 に切り詰められることを示すことができます。以下に例を示します:
<code class="go">tmp_str := "Hello Friends%.s"</code>
%.s を使用すると余分なフィールドが切り捨てられ、目的の出力が得られます:
Hello Friends
以上がfmt.Sprintf で予期しないフィールドを処理するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。