Golang quicktemplate库中如何使用

  介绍

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库中如何使用