我有一个Groovy类,看起来很像这样:
class A {
B[] requests = []
}
在代码中,我有一个A数组,我想知道其中包含多少个B.什么是最常规的计算方法?我知道如何在Java中实现它,但它看起来比我怀疑Groovy希望它更加丑陋。这是我迄今为止所做的工作:
list.each{ a -> count += a.requests.size() }
有更好的方法吗?
答案 0 :(得分:2)
编码时,我会调查the KISS principle有关维护和清晰度的问题。并非一切都应该使用闪亮的功能。
您的版本是合理的' Groovy',但您可能需要考虑使用隐式变量it
(see doc):
def count = 0
list.each{ count += it.requests.size() }
答案 1 :(得分:1)
class A {
B[] requests = []
}
class B{
String name
}
assert [
new A(requests : [new B(name: 'John'), new B(name: 'Jim'),
new B(name: 'Alex')]),
new A(requests : [new B(name: 'Test'), new B(name: 'Alex')]),
new A(requests : [new B(name: 'John')])
]*.requests*.size() == [3, 2, 1]