在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}} 區塊中所做的更改在區塊結束後得到反映.
替代方案方法
模擬變數: 利用註冊的自訂函數來模擬可變變量,將資料儲存在傳遞給模板的映射中
結論雖然Go 的模板包在簡單性方面表現出色,但對於複雜邏輯來說確實存在局限性。但是,透過使用賦值和自訂函數,您可以有效地操作模板中多個位置的值。以上是如何在 Go 的 html/template 套件中建立和修改全域變數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!