存取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中文網其他相關文章!