学习-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语言框架

猜你喜欢

转载自blog.csdn.net/y943711797/article/details/125761466