テンプレート出力を変数に再代入する
Go では、テンプレートを使用してカスタム出力を生成する便利な方法が提供されます。デフォルトでは、出力は t.Execute(os.Stdout, xxx) を使用して標準出力 (STDOUT) に出力されます。ただし、代わりに出力を変数に割り当てたい場合もあります。
これを実現するには、t.Execute が io.Writer インターフェイスを実装する入力を期待していることを覚えておくことが重要です。適切なオプションの 1 つは、bytes.Buffer や strings.Builder などのバッファーを利用することです。
bytes.Buffer を使用する:
var tpl bytes.Buffer if err := t.Execute(&tpl, data); err != nil { return err } result := tpl.String()
このコードでは、 bytes.Buffer を取得し、そのアドレスを t.Execute に渡します。テンプレートの実行が成功すると、出力はバッファーに保存され、tpl.String().
Using a strings.Builder:
builder := &strings.Builder{} if err := t.Execute(builder, data); err != nil { return err } result := builder.String()strings.Builder は、より特殊な代替手段を提供します。前のアプローチと同様に、ビルダーは io.Writer として t.Execute に渡され、出力はビルダーに収集されます。 builder.String() メソッドを使用して、出力を文字列として取得できます。
以上がGo テンプレートの出力を STDOUT に出力する代わりに変数にキャプチャするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。