返回
语法
return [VALUE]
返回值
any
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>{{ . }} is even</p>
{{ else }}
<p>{{ . }} is odd</p>
{{ end }}
调用时,该部分会呈现 HTML
{{ partial "odd-or-even.html" 42 }} → <p>42 is even</p>
让我们创建一个返回布尔值的部分,而不是呈现 HTML,该布尔值报告给定的数字是否为偶数
layouts/partials/is-even.html
{{ return math.ModBool . 2 }}
使用此模板
{{ $number := 42 }}
{{ if partial "is-even.html" $number }}
<p>{{ $number }} is even</p>
{{ else }}
<p>{{ $number }} is odd</p>
{{ end }}
Hugo 渲染
<p>42 is even</p>
请参阅 部分模板 部分中的其他示例。
用法
返回值的局部变量必须只包含一个 return
语句,该语句位于模板的末尾。
例如
layouts/partials/is-even.html
{{ $result := false }}
{{ if math.ModBool . 2 }}
{{ $result = "even" }}
{{ else }}
{{ $result = "odd" }}
{{ end }}
{{ return $result }}
layouts/partials/do-not-do-this.html
{{ if math.ModBool . 2 }}
{{ return "even" }}
{{ else }}
{{ return "odd" }}
{{ end }}