return
return
陳述句是 Go 的 text/template 套件中的自定義新增功能。用於部分模板內,return
陳述句結束模板執行並回傳給定的值(如果有)。
回傳的值可以是任何資料型別,包括但不限於 bool
, float
, int
, map
, resource
, slice
, 和 string
。
若 return
陳述句沒有提供值,則回傳類型為 template.HTML
的空字串。
範例
作為範例,讓我們創建一個部分模板,該模板 呈現 HTML,描述給定的數字是奇數還是偶數:
layouts/partials/odd-or-even.html
{{ if math.ModBool . 2 }}
<p>{{ . }} 是偶數</p>
{{ else }}
<p>{{ . }} 是奇數</p>
{{ end }}
呼叫時,這個部分會呈現 HTML:
{{ partial "odd-or-even.html" 42 }} → <p>42 是偶數</p>
與其呈現 HTML,不如讓我們創建一個部分模板,該模板 回傳 布林值,報告給定數字是否為偶數:
layouts/partials/is-even.html
{{ return math.ModBool . 2 }}
使用這個模板:
{{ $number := 42 }}
{{ if partial "is-even.html" $number }}
<p>{{ $number }} 是偶數</p>
{{ else }}
<p>{{ $number }} 是奇數</p>
{{ end }}
Hugo 會呈現:
<p>42 是偶數</p>
在 部分模板 區段中可以找到更多範例。
使用方式
回傳值的部分模板必須只包含一個 return
陳述句,並將其置於模板的最後。
例如:
layouts/partials/is-even.html
{{ $result := false }}
{{ if math.ModBool . 2 }}
{{ $result = "偶數" }}
{{ else }}
{{ $result = "奇數" }}
{{ end }}
{{ return $result }}
layouts/partials/do-not-do-this.html
{{ if math.ModBool . 2 }}
{{ return "偶數" }}
{{ else }}
{{ return "奇數" }}
{{ end }}