在groovy中有什么和找到什么区别?

vin*_*ddy 0 groovy

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

myList(1, 2, 3).any { it > 2 }
myList(1, 2, 3).find { it > 2 }
Run Code Online (Sandbox Code Playgroud)

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

Opa*_*pal 7

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

如果您需要知道是否存在符合某些条件的元素,请使用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]
Run Code Online (Sandbox Code Playgroud)