golang text/template的用法: if, else, with
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) }}
补充: 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:
支持的语法虽然少,但是完全够用!
??
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |