【发布时间】:2018-04-11 17:10:37
【问题描述】:
以下操作的 Groovy 类比是什么?
list.stream().anyMatch(b -> b == 0);
【问题讨论】:
-
您能否检查一下解决方案是否有帮助?
标签: java groovy functional-programming closures java-stream
以下操作的 Groovy 类比是什么?
list.stream().anyMatch(b -> b == 0);
【问题讨论】:
标签: java groovy functional-programming closures java-stream
您的意思是查找列表是否包含元素0?
def list = [0,1,2,3,4]
def result = list.any{it == 0}
println result
大家可以在线快速试用demo
【讨论】:
list 不是原语列表怎么办。但是对象列表,我想按里面的属性过滤?
{it == 0},与Java Stream API 相同。
it 任意名称吗?
it 不是任意名称。这是闭包参数默认获得的名称,如果您不声明一个。 {it == 0} 与 {someArg -> someArg == 0} 相同。
{ it.homeAddress.town == 'St. Louis'}的事情。
Groovy 语法的范围从 Java 风格到惯用的 Groovy。这两种方法都有效:
// Java-esque
List<Integer> list = [4,3,2,1,0]
assert list.stream().any{ b -> b == 0 }
// Groovier (note `it` is an alias for the parameter)
def list2 = [4,3,2,1,0]
assert list2.stream().any{ it == 0 }
【讨论】: