原文 https://pkg.go.dev/text/template
Actions
这是操作列表。“参数”和“管道”是对数据的评估,在随后的相应部分中进行了详细定义。
markdown特殊语法,无法增加``,以下函数都被此符号包裹。由()
替代。参考如下
(pipeline)
值的默认文本表示(与fmt.Print 打印的相同)被复制到输出。
(if pipeline) T1 (end)
如果管道的值为空,则不产生输出;否则,执行T1。空值是 false、0、任何nil 指针或接口值,以及任何长度为零的数组、切片、映射或字符串。点不受影响。
(if pipeline) T1 (else) T0 (end)
如果管道的值为空,则执行T0;否则,执行T1。点不受影响。
(if pipeline) T1 (else if pipeline) T0 (end)
为了简化if-else链的外观,if的else动作可以直接包含另一个if;的效果是完全一样书写
(if pipeline) T1 (else)(if pipeline) T0 (end)(end)
(range pipeline) T1 (end)
管道的值必须是数组、切片、映射或通道。如果管道的值长度为零,则不输出任何内容;否则,将 dot 设置为数组的连续元素,slice 或 map 并执行 T1。如果值是映射并且键是具有定义顺序的基本类型,则元素将按排序键顺序访问。
(range pipeline) T1 (else) T0 (end)
管道的值必须是数组、切片、映射或通道。如果管道的值长度为零,则dot不受影响,执行T0;否则,将 dot 设置为数组、切片或映射的连续元素,并执行 T1。
(template "name")
具有指定名称的模板以 nil 数据执行。
(template "name" pipeline)
执行指定名称的模板,点设置为管道的值。
(block "name" pipeline) T1 (end)
block 是定义模板的简写
(define "name") T1 (end)
然后在原地执行它
(template "name" pipeline)
典型用途是定义一组根模板,然后通过重新定义其中的块模板进行自定义
(with pipeline) T1 (end)
如果管道的值为空,则不产生输出;否则,将 dot 设置为流水线的值并执行T1 。
(with pipeline) T1 (else) T0 (end)
如果管道的值为空,则dot不受影响,执行T0 ;否则,将 dot 设置为流水线的值并执行 T1。