1. 方法定义
简化语法:无访问修饰符时默认 public,返回值可省略。
可选参数:用 default 赋值,参数顺序靠后。
可变参数:同 Java(Type... args),但调用时更灵活。
// 基础方法
def add(int a, int b = 0) { // b 可选,默认0
a + b // 自动返回
}
println add(1) // 1(b用默认值)
println add(1,2) // 3
// 可变参数
def sum(int... nums) {
nums.sum()
}
println sum(1,2,3) // 6
2. 闭包(Closure)
Groovy 核心特性,类似 Java Lambda 但更强大,本质是可执行的代码块:
语法:{ 参数 -> 代码 }(无参数可省略 ->,用默认变量 it)。
可赋值给变量、作为方法参数、直接调用。
// 定义闭包
def greet = { name -> "Hello, $name" }
// 调用闭包
println greet("Groovy") // Hello, Groovy
// 无参数闭包(用it)
def printIt = { println it }
[1,2,3].each(printIt) // 遍历打印1、2、3
// 闭包作为方法参数(最后一个参数可移到括号外)
def calculate(int a, int b, Closure op) {
op(a, b)
}
// 简化调用(括号省略+闭包外移)
def result = calculate 10, 5 { a, b -> a * b }
println result // 50
浙公网安备 33010602011771号