假设我有
def A = "abc"
def X = "xyz"
如何创建Map
,而不是
def map = [A:1, X:2]
相反,我得写的是
def map = [abc:1, xyz:2]
但可以使用变量A
和X
作为密钥吗?
P.S。:对地图的价值部分提出同样的问题。
答案 0 :(得分:141)
使用此:
def map = [(A):1, (X):2]
对于价值部分来说,它更容易,因为没有自动化的“将文本转换为字符串”:
def map = [keyA:A, keyX:X]
答案 1 :(得分:17)
继Joachim's answer之后,如果要将条目添加到现有地图并且键是变量,请使用:
def map = [:]
def A = 'abc'
map[A] = 2
如果您使用:
map.A = 2
假设您要使用文字字符串“A”作为键(即使在范围内有一个名为A的变量。
正如@tim_yates在评论中指出的那样,如果您使用以下内容,也会解析一个关键变量:
map."$A" = 2
虽然我个人更喜欢使用[A]
语法,因为如果重命名变量,重构工具可能会错过"$A"
引用