Go 提供了兩個模板包:text/template 和 html/template。 html/template 套件專注於安全地產生 HTML 輸出以防止程式碼注入,同時與 text/template 共用介面。因此,模板處理的基礎知識主要記錄在 text/template 套件中。
理解管道
管道是指模板內的值評估序列。它們由由管道字元“|”分隔的命令組成。每個命令可以是一個值、帶有參數的函數或方法調用,或者當放置在鏈的末尾時不帶參數的方法。每個命令的結果作為最後一個參數傳遞給以下命令,最終命令的輸出代表管道的值。
點 (.) 符號
點。是一個遊標,指向傳遞給模板的資料結構中的目前位置。它最初指向傳遞給模板的值,但可以透過 {{range}} 或 {{with}} 等運算進行修改。
在範本中使用 .Name 時,您引用的是名稱欄位或點目前指向的值的方法。如果值是結構體,.Name 將存取模板開頭的相應欄位或方法。
模板包含中的管道
當使用 {{template }},您指定一個管道將當前點值傳遞給包含的模板。管道傳遞的值成為呼叫模板內的點。
使用 $ 存取原始資料
由於點在範本處理過程中可能會發生變化,因此 $ 符號提供存取傳遞給範本執行的原始值。這允許您到達原始值的任何部分,即使在深度嵌套的模板呼叫中也是如此。
以上是Go 模板引擎中的管道如何運作?的詳細內容。更多資訊請關注PHP中文網其他相關文章!