86

如何在不迭代的情况下使用变量键查找地图的值?

因此,可以使用 查找变量映射 $x 上的常量键$x.key1,但有可能amap.$key吗?

4

2 回答 2

159

您使用以下index功能:

{{index .Amap "key1"}}
index
    Returns the result of indexing its first argument by the
    following arguments. Thus "index x 1 2 3" is, in Go syntax,
    x[1][2][3]. Each indexed item must be a map, slice, or array.

https://golang.org/pkg/text/template#hdr-Functions

于 2014-10-01T23:09:03.090 回答
9

一种更简单的方法是:{{.Amap.key1}}. 但是,这仅在密钥是字母数字时才有效。如果没有,您需要使用index.

文档中:

- The name of a key of the data, which must be a map, preceded
  by a period, such as
    .Key
  The result is the map element value indexed by the key.
  Key invocations may be chained and combined with fields to any
  depth:
    .Field1.Key1.Field2.Key2
  Although the key must be an alphanumeric identifier, unlike with
  field names they do not need to start with an upper case letter.
  Keys can also be evaluated on variables, including chaining:
    $x.key1.key2
于 2020-08-11T15:27:16.417 回答