【发布时间】:2012-07-06 16:30:12
【问题描述】:
我不明白 Groovy 中以下构造的目的。
当你有一个东西的集合时,称之为items,你可以通过访问集合上的属性来映射一个属性,也就是说,
items.prop == items.collect { it.prop }
这对我来说看起来很奇怪,因为我认为第一个符号实际上意味着我想要访问集合对象本身的属性。例如,可能会发生模棱两可的真实案例
[[1,2,3],['cat', 'elephant']].size == 2
但根据前面的表示法,它应该等于[3, 2]。
此外,如果收集符号不够短,还有 *. spread-dot 运算符,它旨在以这种方式使用:
[[1,2,3],['cat', 'elephant']]*.size = [3, 2]
模棱两可的点符号的目的是什么?它只是为了节省
*.上的字符而添加的,还是在*.不起作用而collect会很麻烦的合法使用案例中?
【问题讨论】:
-
I too 发现
list.prop语法背后的魔力是不必要的,它使事情变得不那么明确而没有真正的收获(除了单个*)。我不知道为什么要添加它,但人们总是可以选择不使用它:)