簡體   English   中英

如何在條件中分配變量

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM