首頁 > 後端開發 > Golang > 如何在 Go 的 html/template 套件中建立和修改全域變數?

如何在 Go 的 html/template 套件中建立和修改全域變數?

Mary-Kate Olsen
發布: 2024-11-25 08:41:27
原創
336 人瀏覽過

How Can I Create and Modify Global Variables Within Go's html/template Package?

在Go 的html/template 中建立全域變數並在多個位置修改它們

在Go 的html/template 套件中,在其內部定義一個變數範圍有效地將其隔離到該特定區域。在提供的範例中,變數 $currentUserId 旨在儲存在整個範本中持續存在的值,但其範圍僅限於 if 條件。

修改模板變數

Go 1.11 引入了修改模板變數的功能。使用 := 定義變量,而 = 分配新值。如果變數是在 if 條件之外定義的,並且它們的值在其中修改,則可以使變數可全域存取。

{{$currentUserId := 0}}
{{if .UserData}}
    {{$currentUserId = .UserData.UserId}}
    [<a href="#ask_question">Inside {{$currentUserId}}</a>]
{{else}}
    [No User Data]
{{end}}
[<a href="#ask_question">outside {{$currentUserId}}</a>]
登入後複製

這確保了{{if}} 區塊中所做的更改在區塊結束後得到反映.

替代方案方法

  • 替代方案方法
  • 自訂函數: 註冊一個類似CurrentUserId() 的函數,該函數根據UserData 的存在傳回使用者 ID。

模擬變數: 利用註冊的自訂函數來模擬可變變量,將資料儲存在傳遞給模板的映射中

結論雖然Go 的模板包在簡單性方面表現出色,但對於複雜邏輯來說確實存在局限性。但是,透過使用賦值和自訂函數,您可以有效地操作模板中多個位置的值。

以上是如何在 Go 的 html/template 套件中建立和修改全域變數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板