any 和 find in groovy 有什么区别?

What is the difference between any and find in groovy?

我正在尝试从 groovy 中的闭包中获取设置值:

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

所以无法弄清楚,使用哪个更好。

any returns boolean - 如果列表中的任何元素匹配闭包条件则为真,而 find returns 满足闭包条件的第一个元素正在通过。

如果您需要知道是否有符合特定条件的元素,请使用 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]