如何从地图中获取密钥

How to get key from map

我正在开发 go 模板。在 . 中有一些地图,只要我知道密钥,我就知道如何获取值。

"Map value: {{ printf "%s" .key1 }}"

如何从模板中获取键名?我希望可能是

"Map key: {{ printf "%s" (keys .)[0] }}"

正如@Adrian 评论的那样:

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

但仅从 range documentation

很难弄清楚

由于问题用 consul-template 标记... Consul/Vault 模板的语法是(给定 .Data 是地图):

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

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