文档章节
Go 模板函数与语句
用这些函数与语句编写条件判断、循环及其它模板逻辑。
本章导读
本目录收录的是 Go 标准库 text/template 自带的函数与语句,Hugo 直接沿用它们的语义。它们负责模板的控制流:条件判断(if、else)、循环(range、break、continue)、上下文绑定(with)、模板定义与调用(define、block、template),以及逻辑运算(and、or、not)与 len、urlquery 等常用函数。
Hugo 对标准库做了少量扩展,其中 return、try 属于非标准语句,用法见各自页面。
本章内容
- and 返回第一个假值参数;若所有参数都为真值,则返回最后一个参数。 (今天)
- block 定义模板,并在当前位置执行它。 (今天)
- break 终止最内层的 range 迭代,并跳过其余所有迭代。 (今天)
- continue 终止最内层的 range 迭代,并继续执行下一次迭代。 (今天)
- define 定义一个模板。 (今天)
- else 为 if、with 与 range 语句开启一个备用分支。 (今天)
- end 结束 if、with、range、block 与 define 语句。 (今天)
- if 当表达式为真值时执行该代码块。 (今天)
- len 返回字符串、切片、映射或集合的长度。 (今天)
- not 对唯一参数取布尔反。 (今天)
- or 返回第一个真值参数;若所有参数都为假值,则返回最后一个参数。 (今天)
- range 遍历非空集合,把上下文(点)依次绑定到每个元素并执行代码块。 (今天)
- return 终止当前模板的执行;在局部模板中使用时,还可返回给定的值(如果有)。 (今天)
- template 执行给定的模板,可选择传入上下文。 (今天)
- try 对给定表达式求值,并返回一个 TryValue 对象。 (今天)
- urlquery 返回其参数文本表示的转义结果,适合嵌入 URL 查询串。 (今天)
- with 若表达式为真值,则把上下文(点)绑定到该表达式并执行代码块。 (今天)