【发布时间】:2021-12-12 09:27:50
【问题描述】:
当迭代嵌套的 for 循环时,我正在尝试更新和打印 Go 模板内的计数器变量。
我不在循环时尝试打印我的任一数据结构的索引。我不会打印每个数据结构中的每个对象,我希望这个计数器变量仅在相等语句为真时递增。
我在这里做错了什么?
去游乐场链接:https://play.golang.org/p/RsuEk1PqZ7a
type a struct {
Numbers []string
Letters []string
}
var data = &a{
Numbers: []string{"one", "two"},
Letters: []string{"a","b","b", "c"},
}
var tmplSrc = `start
{{with $i := 0}}
{{range $number := .Numbers}}
{{range $letter := .Letters}}
{{if eq $letter "b"}}
{{$i = add $i 1}}
{{$i}}
{{end}}
{{end}}
{{end}}
{{end}}
fin
`
func main() {
funcMap := template.FuncMap{
"add": func(a int, b int) int {
return a + b
},
}
tmpl := template.Must(template.New("test").Funcs(funcMap).Parse(tmplSrc))
tmpl.Execute(os.Stdout, data)
}
【问题讨论】:
标签: go templates variables counter