参数代表一个简单的,由下面的某一条表示的值:
类型 | 描述 | 结果值 |
---|---|---|
go基本类型 | go语法的布尔值、字符串(不能跨行)、字符、整数、浮点数、虚数、复数 | 视为无类型字面常数 |
关键字nil | 代表一个go的无类型的nil值 | nil |
字符. | 代表dot的值 | 代表当前值 |
变量名 | 以美元符号起始加上(可为空的)字母和数字构成的字符串,$piOver2 和$ | 执行结果为变量的值 |
结构体数据的字段名 | 以句点起始,如.Field | 执行结果为字段的值 |
.Field1.Field2(链式调用) | 执行结果为字段的值 | |
字段也可以在变量上使用,$x.Field1.Field2 (链式调用) | 执行结果为字段的值 | |
字典类型数据的键名 | 以句点起始,如.Key | 执行结果为该键在字典中对应的成员元素的值 |
键也可以和字段配合做链式调用,深度不限:.Field1.Key1.Field2.Key2(键不需要以大写字母开始) | 执行结果为该键在字典中对应的成员元素的值 | |
键也可以用于变量:$x.key1.key2 (链式调用) | 执行结果为该键在字典中对应的成员元素的值 | |
数据的无参数方法名 | 以句点为起始,如:.Method | 执行结果为dot调用该方法的返回值,dot.Method()(该方法必须有1到2个返回值,如果有2个则后一个必须是error接口类,如果有2个返回值的方法返回的error非nil,模板执行会中断并返回给调用模板执行者该错误) |
方法可和字段、键配合做链式调用,深度不限:.Field1.Key1.Method1.Field2.Key2.Method2 | ||
方法也可以在变量上使用:$x.Method1.Field (链式调用) | ||
无参数的函数名 | 如:fun | 执行结果是调用该函数的返回值fun()(对返回值的要求和方法一样) |
上面某一条的实例加上括弧 | 用于分组 | 执行结果可以访问其字段或者键对应的值 print (.F1 arg1) (.F2 arg2)(.StructValuedMethod "arg").Field |
Arguments可以是任何类型:
Action里可以初始化一个变量来捕获管道的执行结果。初始化语法如下:
$variable := pipeline
// 其中$variable是变量的名字。声明变量的action不会产生任何输出
range $index, $element := pipeline
// 这时,$index和$element分别设置为数组/切片的索引或者字典的键,以及对应的成员元素
// 注意这和go range从句只有一个参数时设置为索引/键不同
模板开始执行时,$会设置为传递给Execute方法的参数,就是说,dot的初始值。