Groovy - 闭包

闭包是一个简短的匿名代码块。 它通常只跨越几行代码。 方法甚至可以将代码块作为参数。 它们本质上是匿名的。

以下是一个简单闭包的示例及其外观。

class Example {
   static void main(String[] args) {
      def lst = [1,2,3,4];
      lst.each {println it}
      println("The list will only display those numbers which are divisible by 2")
      lst.each{num -> if(num % 2 == 0) println num}
   } 
}

上面的例子展示了闭包中使用的条件 if(num % 2 == 0) 表达式,用于检查列表中的每个项目是否可以被 2 整除。

当我们运行上面的程序时,会得到下面的结果 −

1 
2 
3 
4 
The list will only display those numbers which are divisible by 2.
2 
4 

闭包使用的方法

闭包本身提供了一些方法。

序号 方法与描述
1 find()

find 方法在集合中找到第一个符合某个条件的值。

2 findAll()

在接收对象中查找所有符合闭包条件的值。

3 any() & every()

any 方法遍历集合的每个元素,检查布尔谓词是否对至少一个元素有效。

4 collect()

collect 方法遍历一个集合,使用闭包作为转换器将每个元素转换为新值。