go语言学习I青训营

58 阅读2分钟

go语言内置了文本模板引擎text/template和用于HTML文档的html/template,他们的作用机制可以简单归纳如下:

模板文件通常定义为.tmpl和.tpl为后缀(也可以使用其他后缀),必须用UTF8编码

模板文件中使用{{}}包裹和标识需要传入的数据

传给模板这样的数据就可以通过(.)来访问,如果数据是复杂类型的数据,可以通过{{.FieldName}}来访问它的字段

除{{}}包裹的内容外,其他内容均不做修改原样输出

模板引擎的使用Go语言模板引擎的使用可以分为三个部分:定义模板文件、解析模板文件和模板渲染

定义模板文件其中,定义模板文件时需要我们按照相关语法规则去编写,后文会详细介绍

解析模板文件上面定义好了模板文件之后,可以使用下面的常用方法去解析模板文件,得到模板对象:

func(t *Template)Parse(src string)(*Template,error) func ParseFiles(filenames...string)(*Template,error) func ParseGlab(patter string)(*Template,error)当然,也可以使用func New(name string) *Template函数创建一个名为name的模板,然后对其调用上面方法去解析模板字符串或模板文件

模板渲染渲染模板简单来说就是使用数据去填充模板,当然实际上可能会复杂很多

Func (t *Template)Execute(wr io.Writer,data interface{})error Func(t *Template)ExecuteTemplate(wr io.Writer,data interface{})error

模板语法

模板语法都包含在{{和}}中间,其中{{.}}中的点表示当前对象。当我们传入一个结构体对象时,我们可以根据.来访问结构体的对应字段PS:注释执行时会忽略可以多行,注释不能嵌套,并且必须紧贴分界符始止

pipeline是指产生数据的操作。比如{{.}}、{{.name}}等。Go的模板语法中支持使用管道符号|链接多个命令,|前面的命令会将运算结果(或返回值)传递给后一个命令的最后一个位置

注意:并不是只有使用了|才是pipeline,GO的模板语法中,pipeline概念是传递数据,只要能产生数据的都是pipeline.

变量,我们还可以在模板中声明变量,用来保存传入模板数据或其他语句生成的结果。具体语法如下:¥obj:={{.}}(其中$obj是变量的名字,在后续代码中就可以使用该变量了)

心得体会:今天只学了一部分,感觉在和我说前端的知识,这个渲染感觉就是给我们一个模板写的内容大差不差,难懂,但是知道了一个测试的软件postman,挺好用的,强推,不用在网页上测试,postman上有各种get post put等等。