ホームページ  >  記事  >  バックエンド開発  >  Go HTML テンプレートでグローバル変数を管理および変更するにはどうすればよいですか?

Go HTML テンプレートでグローバル変数を管理および変更するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-17 22:10:02319ブラウズ

How Can I Manage and Modify Global Variables in Go HTML Templates?

Go HTML/テンプレートでのグローバル変数の管理

Go の HTML/テンプレートで変数を作成する場合、通常、そのスコープは条件ブロックに制限されますそこで定義されています。これを克服し、テンプレートの複数のセクション間で変数を共有するには、別のアプローチが必要です。

Go 1.11 では、テンプレート変数を変更するための新しいメカニズムが導入されました。

グローバルの作成変数:

グローバル変数を定義するには、代入演算子 (:=) を使用します:

{{$globalVar := value}}

グローバル変数の変更:

グローバル変数の値を変更するには、代入演算子 (=) を使用します:

{{$globalVar = newValue}}

条件ブロック内のユースケース:

グローバル変数が{{if}} ブロックの外で作成されましたが、ブロック内で変更された場合、変更はブロックの後に表示されます。

{{$globalVar := 0}}
Before: {{$globalVar}}
{{if .UserData}}
    {{$globalVar = .UserData.UserId}}
    [<a href="#ask_question">Inside {{$globalVar}}</a>]
{{else}}
    {{$globalVar = 0}}
{{end}}
[<a href="#ask_question">Outside {{$globalVar}}</a>]

例:

次のテンプレートを考えてみましょう。 :

m := map[string]interface{}{}
t := template.Must(template.New("").Parse(src))

m["UserData"] = UserData{99}
if err := t.Execute(os.Stdout, m); err != nil {
    panic(err)
}

次のソースの場合:

Before: {{$globalVar}}

    [<a href="#ask_question">Inside {{$globalVar}}</a>]

[<a href="#ask_question">Outside {{$globalVar}}</a>]

出力は次のようになります:

Before: 0

    [<a href="#ask_question">Inside 99</a>]

[<a href="#ask_question">Outside 99</a>]

これは、グローバル変数を変更して変更を加える機能を示しています。テンプレート全体に反映されます。

以上がGo HTML テンプレートでグローバル変数を管理および変更するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。