Go 如何从地图中获取密钥

Go 如何从地图中获取密钥,go,go-templates,consul-template,Go,Go Templates,Consul Template,我正在制作围棋模板。有一些地图在里面。我知道如何获得价值,只要我知道关键 "Map value: {{ printf "%s" .key1 }}" 如何从模板内部获取密钥名?我想可能是这样的 "Map key: {{ printf "%s" (keys .)[0] }}" 正如@Adrian所评论的: {{ range $key, $val := . }} key: {{ $key }}; value: {{ $val }} {{ end }} 但是仅仅从就很难理解,因为这个问题是用con

我正在制作围棋模板。有一些地图在里面。我知道如何获得价值,只要我知道关键

"Map value: {{ printf "%s" .key1 }}"
如何从模板内部获取密钥名?我想可能是这样的

"Map key: {{ printf "%s" (keys .)[0] }}"
正如@Adrian所评论的:

{{ range $key, $val := . }}
key: {{ $key }}; value: {{ $val }}
{{ end }}

但是仅仅从

就很难理解,因为这个问题是用consul模板标记的。。。给出了Consor/Vault模板的语法。数据为地图:

{{ index .Data "complex.key.name" }}

这是很有用的,当键名是复杂的,比如包含点,并且{{.Data.complex.key.name}}被解释为访问嵌套字段时。

您可以在地图上进行范围搜索以获取所有键值,这就是您要找的吗?没有任何有意义的方法可以通过数字索引获取可以访问的键片段,因为片段是有序的,而映射不是有序的。@Adrian是的,听起来像是我需要的。范围包含在“操作”下的文档中:@Adrian谢谢,我可以看到它,它确实有效。只是不想给出一个答案,而实际上是你给出的。