在groovy中,任何和发现有什么区别?

时间:2015-05-19 19:26:22

标签: groovy

我试图从groovy中的闭包中获取设定值:

myList(1, 2, 3).any { it > 2 }
myList(1, 2, 3).find { it > 2 }

所以无法弄明白,哪一个更好用。

1 个答案:

答案 0 :(得分:7)

any返回boolean - 如果列表中的任何元素与闭包条件匹配,则返回true,而find返回满足传递闭包条件的第一个元素。

如果您需要知道是否存在符合特定条件的元素,请使用any,如果您只需要一个元素(第一个元素),请使用find,如果您需要所有元素匹配关闭传递使用findAll

示例:

assert [1, 2, 3].any { it > 1 }
assert [1, 2, 3].find { it > 1 } == 2
assert [1, 2, 3].findAll { it > 1 } == [2, 3]