groovy方法与闭包

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

posted on 2025-12-15 22:12  枫飘过的天1  阅读(0)  评论(0)    收藏  举报