我有一个收藏夹,我想找到某些元素并将其转换。我可以在两个闭包中执行此操作,但我想知道是否只有一个闭锁有可能?

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/

10-11 22:44
查看更多