Groovy - Map Literal中的整数或非String键

Ner*_*rve 5 groovy

我正在尝试使用Groovy文字创建一个Integer vs Integer的映射,即

Map<Integer, Integer> map = [1:10, 2:30, -3:32]
Run Code Online (Sandbox Code Playgroud)

但是,我收到了编译错误.如何使用地图文字指定-3作为键?

Pra*_*ete 9

正如groovy docs中所述,任何非字符串Map键都应在圆括号()中指定.

因此,您可以创建如下地图

Map sampleMap = [:]
sampleMap << [(1): 3]
Run Code Online (Sandbox Code Playgroud)

您可以在我们正常访问时访问此映射键值.

如下

println  sampleMap[1]
Run Code Online (Sandbox Code Playgroud)

产量

3
Run Code Online (Sandbox Code Playgroud)

我们甚至可以将变量作为关键

String mapKey = "firstKey"
sampleMap << [ (mapKey) : 5]

println sampleMap[mapKey]
Run Code Online (Sandbox Code Playgroud)

产量

5
Run Code Online (Sandbox Code Playgroud)