首页 > 其他分享 >go template语法

go template语法

时间:2022-08-18 17:49:13浏览次数:107  
标签:end arg1 arg2 语法 空白 例子 template 移除 go

go template模板的语法

当前对象

{{ . }} 表示当前对象,当前对象针对于作用域而言

  • 例子1:当前传入字符串对象,{{ . }}直接表示字符串

image-20220818143448916

这里的{{ . }}就是传入的hello world

  • 例子2:当前传入结构体对象,{{ . }} 表示结构体 {{ .Name }}和{{ .Age }}获取结构体属性

image-20220818143845275

这里的{{ . }} 就是匿名结构体 {{ .Name }} 获取姓名 {{ .Age }}获取年龄

如果解析错误,则终止解析,例如结构体没有.Sex属性,而使用{{ .Sex }}获取Sex属性

  • 错误示例:尝试解析没有存在的结构体属性会导致解析异常,终止解析

image-20220818144245257

移除空白

{{- . }}移除前面的空白,数据本身的空白不移除

{{- . }}移除后面的空白,数据本身的空白不移除

{{- . -}}移除前面和后面的空白,数据本身的空白不移除

演示的时候用apipost模拟,因为浏览器会自动忽略空格

  • 例子1:正常有空格的情况

image-20220818145359307

  • 例子2:去除左边的空格

image-20220818145553732

  • 例子3:去除右边的空格

image-20220818145642124

  • 例子4:去除左右两边的空格

image-20220818145747666

  • 例子5:数据本身的空格不会去掉

image-20220818150040795

注释

{{/* 这是注释 */}} 表示注释

  • 例子1:注释也会占一行

image-20220818150521226

  • 例子2:移除注释的左空白

image-20220818150942253

  • 例子3:移除注释的右空白

image-20220818151056369

  • 例子4:不能同时移除注释的左右空白

image-20220818151218666

变量和赋值

{{ $var := 123 }} 定义变量var 值是123

{{ $var = 456 }} 把变量var改为456

一般写成{{- $var := 123 }}和{{- $var := 123 }}去除空白

  • 例子1:正常定义与赋值

image-20220818153511955

判断

{{ if pipeline }} T1 {{ end }}

{{ if pipeline }} T1 {{ else }} T0 {{ end }}

{{ if pipeline }} T1 {{ else if pipeline }} T0 {{ end }}

{{ if pipeline }} T2 {{ else if pipeline }} T1 {{ else }}T0 {{ end }}

例子1:

image-20220818155236374

遍历

{{ range $k, $v := . }} {{ $k }} => {{ $v }} {{ end }} 遍历map时是key和value,遍历数组和切片时,是index和value

  • 例子1:遍历map

image-20220818160251346

  • 例子2:遍历切片

image-20220818160359038

{{ range $k, $v := . }} {{ $k }} => {{ $v }} {{ else }}T0{{ end }} 在上面的基础上添加了一个else块

例子3:传入的map或者切片或数组长度为0的情况

image-20220818160821364

内置函数

eq arg1 arg2 判断相等

ne arg1 arg2 判断不等

lt arg1 arg2 小于

le arg1 arg2 小于等于

gt arg1 arg2 大于

ge arg1 arg2 大于等于

len arg1 arg2 返回长度

printf go语言中的Sprintf

println go语言中的Sprintln

定义模板

可以把代码块定义为一个模板,方便后面的嵌套,重用

{{ define "template1" }}{{ end }} 定义模板名称为template1

{{template “template1” . }} 使用模板template1,传入当前的对象进去,对象就是 {{ . }}

image-20220818163804825

参考:https://www.cnblogs.com/f-ck-need-u/p/10053124.html

标签:end,arg1,arg2,语法,空白,例子,template,移除,go
From: https://www.cnblogs.com/rainbow-tan/p/16599512.html

相关文章

  • 使用go,读取指定文件,并输出到终端
    使用go,读取指定文件,并输出到终端packagemainimport( "bufio" "flag" "fmt" "io" "os")funcmain(){ varpathstring flag.StringVar(&path,"f","",......
  • 玉米转录组的KEGG和GO富集分析
    目录1.GO富集使用orgDb在线shiny2.KEGG富集1.GO富集使用orgDb通过使用Bioconductor的AnnotationHub在线检索并抓取OrgDb。非模式基因GO富集分析:以玉米为例+使用OrgDb......
  • 关于C语言的基本语法知识
    由“HelloWorld”这样一个基本代码,我了解了一些C语言的基础语法知识,接下来是我对其的粗略理解。首先,我了解到了每一个C语言代码都有一个起始入口,它便是主函数main,我们......
  • YAML文件语法及示例
     前言时间就像海绵里的水,只要愿挤,总还是有的。——鲁迅今天乌天黑地,就来了几点雨,上了一天课,嗓子不舒服了。来打打字,活跃活跃手。 一、YAML文件是什么 YAML是"Y......
  • 解析PHP中常见的mongodb查询操作_PHP教程
    //栏位字串为$querys=array("name"=>"shian");//数值等于多少$querys=array("number"=>7);//数值大于多少$querys=array("number"=>array('$gt'=>5));//数值大......
  • mongodb 安装配置
    环境准备#cat/etc/redhat-releaseCentOSLinuxrelease7.9.2009(Core)vim/etc/security/limits.conf*softnproc655350*hardnproc655350*softnofile6......
  • Go - Beego 初体验
    安装好Beego和Bee之后,开始了项目的体验;创建了目录BeegoDemo,然后VSCode打开了目录进行了初始化gomodinit beegodemo然后执行beenewquickstart, 帮我创建好了......
  • 7、Python语法入门之流程控制
    7、Python语法入门之流程控制  目录:引子分支结构什么是分支结构为什么要用分支结构如何使用分支结构if语法if应用案例循环结构什么是循......
  • 3、Python语法入门之变量
    3、Python语法入门之变量  目录一引入二变量1、什么是变量?2、为什么要有变量?3、怎么使用变量(先定义、后调用)3.1变量的定义与使用3.2变......
  • 4、Python语法入门之基本数据类型
    4、Python语法入门之基本数据类型 目录一引子二数字类型2.1int整型2.1.1作用2.1.2定义2.2float浮点型2.2.1作用2.2.2定义2.3数字......