学习-GO语言前端框架-gin框架-模板渲染2

GO语言前端框架-模板渲染2

比较函数

在gin框架模板渲染中,布尔函数会将任何类型的零值视为假,其余视为真。

常用的比较函数

我们来看一下有哪些常用的比较函数:

我们在模板渲染中是不支持符号(=,<,>···)比较的,所以我们需要使用到比较函数 go eq 如果 arg1 == arg2 则返回真 ne 如果 arg1 != arg2 则返回真 lt 如果 arg1 < arg2 则返回真 le 如果 arg1 <= arg2 则返回真 gt 如果 arg1 > arg2 则返回真 ge 如果 arg1 >= arg2 则返回真

比较函数的基本用法

在使用比较函数时,我们经常与条件判断一起。 html {{if eq a b}} //如果a等于b

条件判断

GO模板中主要有以下几种语法进行条件判断

```go //如果条件判断为真,则渲染T1,否则不展示 {{if pipeline}} T1 {{end}} // 多条件判断 {{if pipeline}} T1 {{else}} T0 {{end}}

{{if pipeline}} T1 {{else if pipeline}} T0 {{end}} 举例 go //如果score大于80分。则展示“优秀”字样 {{if gt .score 80}} 优秀 {{else if gt .score 60}} 及格 {{else}} 不及格 {{end}} ```

range (循环)

Go 的模板语法中使用 range 关键字进行遍历,有以下两种写法,其中pipeline 的值必须是数组、切片、字典或者通道。

gin //写法一 {{range $key,$value := .obj}} {{$value}} {{end}} // 如果 pipeline 的值其长度为 0,不会有任何输出 //写法二 {{$key,$value := .obj}} {{$value}} {{else}} pipeline 的值其长度为 0 {{end}} 当我们在后端传一个数组时,我们需要使用go模板遍历出来,因此需要使用到range关键字

```gin // 后端路由,数据交互 router.GET("/", func(c *gin.Context) { c.HTML(http.StatusOK, "default/index.html", map[string]interface{}{ "hobby": []string{"唱", "跳", "rap","篮球"}, }) }) // 前端html,将hobby数组遍历 {{range $key,$value := .hobby}}

{{$value}}

{{end}} ```

with

当有多层的变量名的时候,为了方便,我们可以使用with来进行减少代码量和重复的变量名。

gin //路由进行前后端数据交互 user := UserInfo{ Name: "ikun", Gender: "男", Age: 22, } router.GET("/", func(c *gin.Context) { c.HTML(http.StatusOK, "default/index.html", map[string]interface{}{ "user": user, }) }) 当我们没使用with之前需要输出数据时

```gin

{{.user.Name}}

{{.user.Gender}}

{{.user.Age}}

``` 当我们学习gin框架两年半后,学会了with

gin {{with .user}} <h2>姓名:{{.Name}}</h2> <h3>性别:{{.user.Gender}}</h3> <h4>年龄:{{.Age}}</h4> {{end}}

预定义函数

如果感兴趣,我们可以查资料了解一下预定义函数和自定义模板。

本文正在参加技术专题18期-聊聊Go语言框架

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值