ホームページ > バックエンド開発 > Golang > Golang テンプレートの出力を変数にキャプチャするにはどうすればよいですか?

Golang テンプレートの出力を変数にキャプチャするにはどうすればよいですか?

Susan Sarandon
リリース: 2024-12-19 03:32:21
オリジナル
123 人が閲覧しました

How to Capture Golang Template Output into a Variable?

Golang テンプレートの出力を変数にキャプチャする

Golang テンプレート内で、別のテンプレートの出力を変数に直接キャプチャしようとすると、結果が生じる可能性がありますエラー中。この機能を実現するには、出力をキャプチャするカスタム関数を登録する必要があります。

解決策:

  1. 名前付きテンプレートを実行し、結果はバッファになります:
func execTempl(name string) (string, error) {
    buf := &bytes.Buffer{}
    err := t.ExecuteTemplate(buf, name, nil)
    return buf.String(), err
}
ログイン後にコピー
  1. この関数をtemplate:
t := template.Must(template.New("").Funcs(template.FuncMap{
    "execTempl": execTempl,
}).Parse(tmpl))
ログイン後にコピー
  1. 登録された関数を使用して、名前付きテンプレートの出力をキャプチャします:
{{$var := execTempl "my-template"}}
ログイン後にコピー

例テンプレート:

const tmpl = `{{define "my-template"}}my-template content{{end}}
See result:
{{$var := execTempl "my-template"}}
{{$var}}
`
ログイン後にコピー

出力:

See result:

my-template content
ログイン後にコピー

この方法では、名前付きテンプレートを実行し、その出力をテンプレート変数に保存できます。その後、この変数を使用して他の関数に渡したり、テンプレート出力に含めたりできます。

以上がGolang テンプレートの出力を変数にキャプチャするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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