我试图从groovy中的闭包中获取设定值:
myList(1, 2, 3).any { it > 2 }
myList(1, 2, 3).find { it > 2 }
所以无法弄明白,哪一个更好用。
答案 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]