在阅读另一位开发人员编写的Groovy代码时,我遇到了以下定义:
def foo=[:]
什么意思?
在阅读另一位开发人员编写的Groovy代码时,我遇到了以下定义:
def foo=[:]
什么意思?
[:]
创建一个空的 Map。冒号用于将其与创建一个空 List 的 []
区分开来。
这段 Groovy 代码:
def foo = [:]
大致相当于这段Java代码:
Object foo = new java.util.LinkedHashMap();
引用文档:
注意,
[:]
是空映射表达式。
... 这是唯一的Map
,其size()
返回0。它本身很少有用,但你当然可以向这个映射表中添加值:
def emptyMap = [:]
assert emptyMap.size() == 0
emptyMap.foo = 5
assert emptyMap.size() == 1
assert emptyMap.foo == 5
Map
”是不正确的。有很多可能具有大小为0的映射实例,并且它们绝对不都具有引用相等性。但是,它们都将是“相等的”(假设它们没有被修改),这可能是您的意思。 - Sean Reilly
[bar: 'baz', qux: 'quux']
- martin jakubik