default

将以下英文翻译为中文:

default

https://gohugo.io/functions/default/

default函数用于当第一个值未被设置时,返回可以被返回的默认值。

语法

default DEFAULT INPUT

default函数检查给定值是否被设置,如果没有被设置,则返回默认值。在此上下文中,“设置”意味着不同的事情,具体取决于数据类型:

  • 对于数字类型和时间类型,为非零值
  • 对于字符串、数组、切片和映射,为非零长度
  • 对于布尔或结构体值,为任何值
  • 对于任何其他类型,为非nil值

default函数示例引用以下内容页面:

content/posts/default-function-example.md

1
2
3
4
5
6
7
8
---
title: Sane Defaults
seo_title:
date: 2017-02-18
font:
oldparam: The default function helps make your templating DRYer.
newparam:
---

default可以以多种方式编写:

1
2
{{ .Params.font | default "Roboto" }}
{{ default "Roboto" .Params.font }}

​ 上述两个 default函数调用都返回Roboto

​ 但是,default值不需要像上面的例子一样被硬编码。default值可以是变量或直接使用点符号从前置元数据中提取:

1
2
{{ $old := .Params.oldparam }}
<p>{{ .Params.newparam | default $old }}</p>

它将返回:

1
<p>The default function helps make your templating DRYer.</p>

然后使用点符号:

1
<title>{{ .Params.seo_title | default .Title }}</title>

它将返回:

1
<title>Sane Defaults</title>

​ 以下内容具有等效的返回值,但default更为简洁。这演示了default的实用性:

使用if:

1
2
<title>{{ if .Params.seo_title }}{{ .Params.seo_title }}{{ else }}{{ .Title }}{{ end }}</title>
=> Sane Defaults

使用with:

1
2
<title>{{ with .Params.seo_title }}{{ . }}{{ else }}{{ .Title }}{{ end }}</title>
=> Sane Defaults