分享
  1. 首页
  2. 文章

golang text/template的用法: if, else, with

u013834131 · · 30745 次点击 · · 开始浏览
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

golang的text/template 包在使用的时候还是有些不便,特别是涉及到逻辑判断的时候。经过测试,发现下面这种写法是正确的。 1.2.1的环境下没有问题!

相关资料:https://gowalker.org/text/template

eq是一个函数。


package main
import "text/template"
import "os"
func main() {
	type Inventory struct {
		Material string
		Count int
	}
	sweaters := Inventory{"axe", 0}
	html := `
	"test").Parse("{{.Count}} items are made of {{.Material}}"
	{{$a := .Count}}
	{{$b := 17}}
	{{$c := 18}}	
 
	{{if eq .Count $b}}
	oo
	{{else}}
	xx
	{{end}}
	`
	tmpl, err := template.New("test").Parse(html)
	if err != nil {
		panic(err)
	}
	err = tmpl.Execute(os.Stdout, sweaters)
	if err != nil {
		panic(err)
	}
}



{{len .Statistics | print}}
{{$le:= len .Statistics}}
{{if eq $le 0}} 
 is 0 
{{else}} 
 not 0 
{{end}}


if/else 与or, eq函数的用法

{{else if or (eq $e.Status -2) (eq $e.Status -3)}}


{{with and ($et := .Extension) ($ch := .Changelog) }}
{{range $e := $ch}}
...
{{$et.Name}} {{$e.Version}}

{{end}}
{{end}}


补充:

There is a variable, ,ドル that you can use to solve your problem. From the text/template docs: "When execution begins, $ is set to the data argument passed to Execute, that is, to the starting value of dot." In your case:

{{with ($ch := .Changelog) }}

{{range $e := $ch}}

<!--begin ch-->

<span>
{{$e.CreateTime}} html1
</span>


{{with ($u:= $.User)}}
<a href="/xxx?cid={{$e.Cid}}">html2
</a>
{{end}}

<!--end ch-->
{{end}}
{{end}}


支持的语法虽然少,但是完全够用!



有疑问加站长微信联系(非本文作者)

本文来自:CSDN博客

感谢作者:u013834131

查看原文:golang text/template的用法: if, else, with

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

关注微信
30745 次点击
暂无回复
添加一条新回复 (您需要 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传

用户登录

没有账号?注册
(追記) (追記ここまで)

今日阅读排行

    加载中
(追記) (追記ここまで)

一周阅读排行

    加载中

关注我

  • 扫码关注领全套学习资料 关注微信公众号
  • 加入 QQ 群:
    • 192706294(已满)
    • 731990104(已满)
    • 798786647(已满)
    • 729884609(已满)
    • 977810755(已满)
    • 815126783(已满)
    • 812540095(已满)
    • 1006366459(已满)
    • 692541889

  • 关注微信公众号
  • 加入微信群:liuxiaoyan-s,备注入群
  • 也欢迎加入知识星球 Go粉丝们(免费)

给该专栏投稿 写篇新文章

每篇文章有总共有 5 次投稿机会

收入到我管理的专栏 新建专栏