ホームページ >バックエンド開発 >Golang >Go テンプレートのネストされた 'with' または 'range' ステートメントの外側のスコープから変数にアクセスするにはどうすればよいですか?

Go テンプレートのネストされた 'with' または 'range' ステートメントの外側のスコープから変数にアクセスするにはどうすればよいですか?

DDD
DDDオリジナル
2024-11-24 10:57:10842ブラウズ

How can I access variables from the outer scope in nested

Go テンプレートのネストされた "with" または "range" スコープの外部スコープへのアクセス

Go テンプレートでの "with" の使用または「range」ステートメントは新しいスコープを作成し、現在のスコープのコンテキストを変更します。これにより、外側のスコープで定義された変数へのアクセスが必要になる状況が発生する可能性があります。

$ の使用。 innerValue

ネストされた "with" スコープまたは "range" スコープ内の呼び出しスコープへのアクセスを保持するには、"$" と呼ばれる特別に定義された変数が使用されます。この変数は Go テンプレート エンジンによって提供され、Execute 関数に渡されたデータ値に戻ります。これは初期ドット (.) 値を表します。

使用例

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

{{with .Inner}}
  Outer: {{$.OuterValue}}
  Inner: {{.InnerValue}}
{{end}}

この例では、「with」ステートメントが新しいスコープを定義します。 「内部」変数。ただし、このスコープ内では、外側のスコープで定義された "OuterValue" へのアクセスは、"$.OuterValue" を使用して実現できます。

$

Go テンプレートのドキュメントドキュメントでは、「$」の役割を次のように明示的に説明しています。

「実行が開始されると、$ は Execute に渡されるデータ引数に設定されます。つまり、ドットの開始値です。

この説明は、「$」がテンプレートに渡された元のデータへの参照を維持し、元のスコープの変数へのアクセスを許可していることを確認します。

以上がGo テンプレートのネストされた 'with' または 'range' ステートメントの外側のスコープから変数にアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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