英文:
Go template - syntax for range
问题
在Go模板中,我有一个设置如下的映射:
{{$key}}map := make(map[string]interface{})
我想使用以下方式遍历映射:
{{ range $mapKey, $mapValue := {{$key}}map}}
但是我得到了以下错误:
在range中出现意外的"{"
看起来它不允许在另一个{{}}内嵌套{{}}。有没有办法解决这个问题?
英文:
In Go template, I have a map setup like this:
{{$key}}map := make(map[string]interface{})
And I want to iterate through the map using this:
{{ range $mapKey, $mapValue := {{$key}}map}}
And I am getting this error:
unexpected "{" in range
Looks like it does not allow nested {{}} inside another {{}}. Is there anyway I can solve this issue ???
答案1
得分: 3
你不能使用模板引擎本身来生成模板中要使用的变量名。你似乎需要有多个映射,每个 $key
对应一个映射。所以,可以使用一个映射的映射:
m := make(map[string]map[string]interface{})
其中 m[key]
给出了对应键的映射。
然后你可以这样做:
{{ range $mapKey, $mapValue := (index $.m $.key)}}
...
{{end}}
英文:
You cannot generate variable names to be used in templates using the template engine itself. You seem to be in need of having multiple maps, one for each $key
. So, use a map of maps:
m := make(map[string]map[string]interface{})
where m[key]
gives the map for the key.
Then you can do:
{{ range $mapKey, $mapValue := (index $.m $.key)}}
...
{{end}}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论