[英]How do I assign variables within a conditional
给定一个YAML
文件并go
模板,我可以分配一个变量:
{{ $foo := "bar" }}
我可以使用条件:
{{ if eq $foo "bar" }} jim {{ else }} bob {{ end }}
如何将两者结合起来将条件的结果分配给变量?
我试过了:
{{ $foo := "bar" }}
{{ if eq $foo "bar" }}
{{ $foo = "jim" }}
{{ else }}
{{ $foo = "bob" }}
{{ end }}
但是foo
仍然是bar
对于Go 1.10及更早版本,这是不可能的,模板变量(标识符)无法修改(有“变通办法”,请参阅以下链接)。 它们可以在(n内部)块中重新声明/阴影,但是一旦您离开内部块,更改将不可见。 有关详细信息和变通方法,请参阅In a Go模板范围循环,是否在每次迭代时在循环重置之外声明变量?
请注意,然而Go 1.11即将发布,这将支持这一点 。
这将是一个从Go 1.11开始的有效且有效的模板代码:
{{ $v := "init" }}
{{ if true }}
{{ $v = "changed" }}
{{ end }}
v: {{ $v }} {{/* "changed" */}}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.