[英]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.