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 }}