我有一个收藏夹,我想找到某些元素并将其转换。我可以在两个闭包中执行此操作,但我想知道是否只有一个闭锁有可能?
def c = [1, 2, 3, 4]
def result = c.findAll {
it % 2 == 0
}
result = result.collect {
it /= 2
}
我真正的用例是Gradle,我想查找一堆特定的文件并将其转换为完全合格的包名称。
最佳答案
您可以使用 findResults
:
def c = [1, 2, 3, 4]
c.findResults { i ->
i % 2 == 0 ? // if this is true
i / 2 : // return this
null // otherwise skip this one
}
另外,如果所有元素都不满足条件(闭包),您将获得
[]
关于groovy - 仅在结果不为null时收集,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20973073/