我不理解 Groovy 中以下构造的目的。
每当你有一个东西的集合时,调用它items
,你可以通过访问集合上的属性来映射一个属性,也就是说,
items.prop == items.collect { it.prop }
这对我来说看起来很奇怪,因为我认为第一个符号实际上意味着我想访问集合对象本身的属性。例如,可能会发生模棱两可的真实案例
[[1,2,3],['cat', 'elephant']].size == 2
但根据前面的符号,它应该等于[3, 2]
。
此外,如果收集符号不够短,还有一个*.
点运算符,它的目的就是以这种方式使用:
[[1,2,3],['cat', 'elephant']]*.size = [3, 2]
模棱两可的点符号的目的是什么?它是否只是为了节省字符而添加的,
*.
或者它有合法的使用案例,在那里*.
不起作用并且collect
很麻烦?