本教材由知了传课辛苦制作而成,仅供学习使用,请勿用于商业用途!如进行转载请务必注明出处!谢谢!

模板函数

源代码路径:chapter03\test_func_tpl.go

模板路径:template\chapter03\terst_func_tpl.html

一、print

print:对应 fmt.Sprint
printf:对应 fmt.Sprintf

println:对应 fmt.Sprintln

{{print "hallen"}}
格式化输出:
  • %c:字符型,可以把输入的数字按照ASCII码相应转换为对应的字符

  • %d:一个十进制数值,基数为10

  • %f:以标准计数法表示的浮点数或者复数值

  • %s:字符串。输出字符串中的字符直至字符串中的空字符(字符串以’\0’结尾,这个’\0’即空字符)

  • %t:以true或者false输出的布尔值

  • %T:查看类型

  • %v:自动匹配类型输出,适用于大多数类型

fmt.Sprint和fmt.Print的区别:

  • Print有打印,Sprint没有打印,但是可以返回结果

二、管道符

变量可以使用符号 | 在函数间传递

{{.Name | printf "%s"}}

三、括号 优先级

{{printf "nums is %s %d" (printf "%d %d" 1 2) 3}}

{{printf "name:%s,addr:%s" "hallen" (printf "%s-%s" "北京市" "西城区")}}

四、and

1.作用:只要有一个为空,则整体为空,如果都不为空,则返回最后一个

2.使用:

{{and .X .Y .Z}}

五、or

1.作用:只要有一个不为空,则返回第一个不为空的,否则返回空

2.使用:

{{or .X .Y .Z}}

六、call(看自定义模板函数)

1.作用:可以调用函数,并传入参数

2.使用:

{{call .Field .Arg1 .Arg2}}

七、index

1.作用:读取指定类型对应下标的值

2.支持 map, slice, array, string

e.g.

数据准备:
arr := []int{1,2,3,4,5}
message := map[string]interface{}{
"arr":arr,
"name":map[string]interface{}{"name":"xx111","age":18},
}


使用:
{{index .name "name"}}
{{index .arr 1}}

注意:数组的角标从0开始的

八、len

1.作用:返回对应类型的长度

2.支持类型:map, slice, array, string, chan

e.g.

{{.arr | len}}

九、not

1.作用:返回输入参数的否定值

2.使用

{{not .arr1}}

十、urlquery

1.作用:有些符号在URL中是不能直接传递的,如果要在URL中传递这些特殊符号,那么就要使用他们的编码了。

2.使用

{{urlquery "http://www.baidu.com"}}

结果:http%3A%2F%2Fwww.baidu.com

% 后面的就是字符的16进制的字符码

十一、eq / ne / lt / le / gt / ge

1.eq:等于

2.ne:不等于

3.lt:小于 less

4.le:小于等于

5.gt:大于 greater

6.ge:大于等于

{{eq .num 18}}

{{ne .num 17}}

{{lt .num 16}}

{{le .num 18}}

{{gt .num 18}}

{{ge .num 18}}

eq 和其他函数不一样的地方是,支持多个参数

{{eq .num 10 11 17 18}}

1327人已阅读,今天你学习了吗?

添加新回复
目录