エラー内容
range ループ内で、rangeに与えていない変数を利用しようとすると、
「can't evaluate field X in type Y」というエラーが発生する
エラーが発生する例
変数 exFlag が true の場合に $v を表示する
.go
{{ range $i, $v := .Values }}
{{ if .exFlag }}
{{ $v }}
{{ end }}
{{ end }}
なぜか
When execution begins, $ is set to the data argument passed to Execute, that is, to the starting value of dot.
rangeの中では、先頭に「.」がつく変数は、「$.」でアクセスできるようになるようです。
正しい例
.go
{{ range $i, $v := .Values }}
{{ if $.exFlag }}
{{ $v }}
{{ end }}
{{ end }}
まとめ
常識なのかもしれませんが、
私は、はまったので誰かの役に立てれば。