首頁 >後端開發 >Golang >如何在 Go 範本中的巢狀「with」或「range」語句中存取外部作用域的變數?

如何在 Go 範本中的巢狀「with」或「range」語句中存取外部作用域的變數?

DDD
DDD原創
2024-11-24 10:57:10845瀏覽

How can I access variables from the outer scope in nested

存取Go 模板中嵌套「with」或「range」作用域中的外部作用域

在Go 模板中,使用「with」或「範圍」語句建立一個新範圍,改變目前範圍的上下文。這可能會導致需要存取外部作用域中定義的變數的情況。

使用$. OuterValue

為了保留對嵌套「with」或「range」範圍內調用範圍的訪問,使用了一個專門定義的變數「$ 」。此變數由 Go 模板引擎提供,並定向回傳遞給 Execute 函數的資料值,該值表示初始點 (.) 值。

範例用法

考慮以下範本程式碼:

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

在此範例中,「with」語句定義了一個新範圍「內部”變數。但是,在此範圍內,可以使用「$.OuterValue」來存取外部範圍中定義的「OuterValue」。

$

Go範本的文件文件明確描述了「$」的作用如下:

「當執行開始時,$被設定為傳遞給Execute的資料參數,即到點的起始值。」

此解釋確認「$」維護對傳遞給模板的原始資料的引用,允許存取原始範圍的變數。

以上是如何在 Go 範本中的巢狀「with」或「range」語句中存取外部作用域的變數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn