Groovy 闭包
闭包的概念
闭包(Closure)在 Groovy 中是一种特殊的对象,它类似于 Java 中的匿名函数。闭包可以捕获变量,可以作为参数传递,也可以作为方法的返回值。
基本语法
闭包的基本语法是使用 {}
包围一段代码。例如:
def closure = { println "Hello, Groovy!" }
closure() // 调用闭包
参数和返回值
闭包可以接受参数,并且可以有返回值。
带参数的闭包:
def greet = { name -> println "Hello, ${name}!" } greet('Groovy') // 输出:Hello, Groovy!
带返回值的闭包:
def square = { int num -> return num * num } println square(3) // 输出:9
闭包作为参数
闭包可以作为方法的参数传递,增加了编程的灵活性。
def operate(a, b, operation) {
operation(a, b)
}
def result = operate(5, 3, { x, y -> x + y })
println result // 输出:8
在集合上使用闭包
闭包在处理集合时特别有用。
列表上的闭包操作:
def numbers = [1, 2, 3, 4, 5] numbers.each { num -> println num }
映射上的闭包操作:
def map = ['a': 1, 'b': 2, 'c': 3] map.each { key, value -> println "$key -> $value" }
高级用法
闭包还有许多高级用法,例如闭包委托、闭包作用域等,这些内容适合更深入的学习。
总结
Groovy 的闭包是一种强大的工具,它提供了灵活性和强大的表达能力。了解如何有效使用闭包是 Groovy 编程的关键部分。