在阅读其他开发人员的一些常规代码时,我遇到了以下定义:
def foo=[:]
这是什么意思?
答案 0 :(得分:30)
[:]
是创建地图的简写表示法。
您还可以为其添加键和值:
def foo = [bar: 'baz']
答案 1 :(得分:9)
[:]
创建一个空地图。冒号用来区别于[]
,它创建一个空列表。
这个常规代码:
def foo = [:]
大致相当于这个java代码:
Object foo = new java.util.LinkedHashMap();
答案 2 :(得分:2)
引用the doc:
请注意
[:]
是空地图表达式。
...这是唯一Map
,其中size()
返回0.)本身,它很少有用,但您可以在此Map中添加值,当然:
def emptyMap = [:]
assert emptyMap.size() == 0
emptyMap.foo = 5
assert emptyMap.size() == 1
assert emptyMap.foo == 5