Golang quicktemplate库中如何使用,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
<编辑类="目录">编辑>
先创建代码目录并初始化:
,美元mkdir quicktemplate ,, cd quicktemplate 美元,go mod  init github.com/darjun/go-daily-lib/quicktemplate
quicktemplate会将我们编写的模板代码转换为去语言代码。因此我们需要安装quicktemplate包和一个名的为高职院校学前教育专业编译器:
,美元go get -u github.com/valyala/quicktemplate 美元,go get  -u github.com/valyala/quicktemplate/qtc
首先,我们需要编写quicktemplate格式的模板文件,模板文件默认以.qtpl作为扩展名。下面我编写了一个简单的模板文件greeting.qtpl:
All text outside function is treated as 评论。 {%,func 问候(字符串,name count int), %} ,,{%,for 小姐::=,0;,小姐:& lt;,计数;,我+ +,%} ,,,你好,,{% s name %} ,,{%,endfor %} {%,endfunc %}
模板语法非常简单,我们只需要简单了解以下2点:
- <李>
模板以函数为单位,函数可以接受任意类型和数量的参数,这些参数可以在函数中使用。所有函数外的文本都是注释,qtc编译时会忽视注释;
李> <李>函数内的内容,除了语法结构,其他都会原样输出到渲染后的文本中,包括空格和换行。
李>将问候。qtpl保存到模板目录,然后执命行高职院校学前教育专业令。该命令会生成对应的去文件greeting.qtpl。去,包名为模板。现在,我们就可以使用这个模板了:
package 主要 import ( “才能fmt" “;github.com/darjun/go-daily-lib/quicktemplate/get-started/templates"才能; ) func main (), { fmt.Println才能(templates.Greeting (“dj",, 5)) }
调用模板函数,传入参数,返回渲染后的文本:
美元去运行。
,,,你好,dj,,,你好,dj
,,,你好,dj
,,,你好,dj
,,,你好,dj
引用>{% s的名字%}执行文本替换,{%,%}循环生成重复文本。输出中出现多个空格和换行,这是因为函数内除了语法结构,其他内容都会原样保留,包括空格和换行。
需要注意的是,由于quicktemplate是将模板转换为去代码使用的,所以如果模板有修改,必须先执命行高职院校学前教育专业令重新生成去代码,否则修改不生效。
语法结构
quicktemplate支持常去见的语法结构,如果//函数/进口/回报。而且写法与直接写去代码没太大的区别,几乎没有学习成本。只是在模板中使用这些语法时,需要使用{%和%}包裹起来,而且如果和等需要添加endif/endfor明确表示结束。
变量
上面我们已经看到如何渲染传入的参数名,使用%}{% s的名字。由于名称是字符串类型,所以在{%后使用年代指定类型.quicktemplate还支持其他类型的值:
<李>
整型:{% d int %}, {% dl int64 %}, {% dul uint64 %};
李> <李>浮点数:{% f浮动%}。还可以设置输出的精度,使用{% f。精度浮点%}。例如{% f。2 1.2345%}输出1.23;
李> <李>字节切片([]字节):{% z字节%};
李> <李>字符串:{% q str %}或字节切片:{%}%求字节,引号转义为,“;
李> <李>字符串:{% j str %}或字节切片:{%}%生理改变字节,没有引号;
李> <李>URL编码:{% u str %},{%是乌斯字节%};
李> <李>{% v什么%}:输出等同于fmt.Sprintf (“% v",任何)。
李>先编写模板:
{%,func 类型(a , int, b float64,, c []字节,,d 字符串),%} ,,int: {% d a %},, float64:, {% f.2 b %},,字节:,{% z c %},, string with 引用:,{% q d %},, string without 引用:,{% j d %}。 {%,endfunc %}然后使用:
func 主要(),{ fmt.Println才能(templates.Types(1), 5.75,[]字节{& # 39;一个# 39;,,& # 39;b # 39;,, & # 39; c # 39;},,“hello")) }运行:
美元去运行。
,int: 1、float64: 5.75字节:abc,字符串引号:,“hello&”,字符串没有引号:你好。
Golang quicktemplate库中如何使用