【Groovy】闭包 Closure ( 闭包调用 | 闭包默认参数 it | 代码示例 )

简介: 【Groovy】闭包 Closure ( 闭包调用 | 闭包默认参数 it | 代码示例 )

文章目录

一、调用闭包

二、闭包默认参数 it

三、代码示例





一、调用闭包


执行 Closure 变量 的 call() 方法 , 可以调用该闭包 ;


   

// 定义闭包变量
        def closure = {
            println "Hello Closure!"
        }
        // 调用闭包
        closure.call()


执行上述代码 , 打印 Hello Closure! ;



直接 在 Closure 变量之后 , 写一个括号 , 也可以调用闭包 ;


   

// 定义闭包变量
        def closure = {
            println "Hello Closure!"
        }
        // 调用闭包
        closure()


执行上述代码 , 打印 Hello Closure! ;






二、闭包默认参数 it


闭包 Closure 默认可以 接收一个默认参数 , 该参数变量名称是 it ,


如果 不传入参数 , 则该 it 就为 null ,

如果 传入参数 , 该 it 变量就是该传入的参数值 ;

在 closure() 调用时 , 传入一个参数 , 会自动赋值给闭包中的 it 变量 ;


   

// 定义闭包变量
        def closure = {
            println it
        }
        // 调用闭包 , 并传入一个默认参数
        closure("Hello")


上述代码会打印 Hello ;






三、代码示例


代码示例 :


class Test {
    static void main(args) {
        // 定义闭包变量
        def closure = {
            println "Hello Closure!"
        }
        // I. 打印闭包类型
        // 打印闭包变量类型
        println closure.getClass()
        // II. 调用闭包
        // 调用闭包 1
        closure.call()
        // 调用闭包 2
        closure()
        // III. 闭包默认参数
        // 定义闭包变量
        def closure1 = {
            println it
        }
        // 调用闭包
        closure1.call("Hello")
        // 调用闭包 , 并传入一个默认参数
        closure1("Closure")
    }
}


执行结果 :


class Test$_main_closure1
Hello Closure!
Hello Closure!
Hello
Closure

image.png

目录
相关文章
|
6月前
|
缓存 JavaScript 前端开发
|
4月前
|
自然语言处理 JavaScript 前端开发
理解闭包的定义
【7月更文挑战第10天】闭包是编程中的关键概念,特别是函数式编程中。它是函数及其相关引用环境的组合,能访问词法作用域内外的变量,即使外部函数已执行完毕。闭包提供封装私有变量、保持状态、延迟执行的功能,常用于模块化、函数工厂、模拟私有方法和回调。JavaScript中通过函数嵌套实现闭包,但也可能导致内存泄漏和性能问题。
104 2
|
6月前
|
存储 Rust 程序员
rust中的函数:定义、调用与闭包
本文将深入探讨Rust编程语言中函数的定义、调用方式,以及闭包(closures)的概念和应用。我们将从函数的基本语法出发,逐步深入到函数的参数传递、返回值,再进一步介绍闭包及其捕获环境的能力,帮助读者全面理解并熟练运用Rust中的函数与闭包。
|
Python
闭包(Closure)
闭包(Closure)
71 0
|
Python 容器
【globlal与nonlocal和闭包函数、装饰器、语法糖】
【globlal与nonlocal和闭包函数、装饰器、语法糖】
121 0
【Groovy】闭包 Closure ( 闭包作为函数参数 | 代码示例 )
【Groovy】闭包 Closure ( 闭包作为函数参数 | 代码示例 )
174 0
【Groovy】闭包 Closure ( 闭包作为函数参数 | 代码示例 )
|
机器学习/深度学习
【Groovy】闭包 Closure ( 闭包参数绑定 | curry 函数 | rcurry 函数 | ncurry 函数 | 代码示例 )(二)
【Groovy】闭包 Closure ( 闭包参数绑定 | curry 函数 | rcurry 函数 | ncurry 函数 | 代码示例 )(二)
125 0
【Groovy】闭包 Closure ( 闭包参数绑定 | curry 函数 | rcurry 函数 | ncurry 函数 | 代码示例 )(二)
【Groovy】闭包 Closure ( 闭包定义 | 闭包类型 | 查看编译后的字节码文件中的闭包类型变量 )
【Groovy】闭包 Closure ( 闭包定义 | 闭包类型 | 查看编译后的字节码文件中的闭包类型变量 )
147 0
【Groovy】闭包 Closure ( 闭包定义 | 闭包类型 | 查看编译后的字节码文件中的闭包类型变量 )
【Groovy】闭包 Closure ( 闭包类 Closure 简介 | 闭包 parameterTypes 和 maximumNumberOfParameters 成员用法 )
【Groovy】闭包 Closure ( 闭包类 Closure 简介 | 闭包 parameterTypes 和 maximumNumberOfParameters 成员用法 )
116 0
【Groovy】闭包 Closure ( 闭包类 Closure 简介 | 闭包 parameterTypes 和 maximumNumberOfParameters 成员用法 )
【Groovy】闭包 Closure ( 闭包类 Closure 简介 | this、owner、delegate 成员区别 | 静态闭包变量 | 闭包中定义闭包 )(二)
【Groovy】闭包 Closure ( 闭包类 Closure 简介 | this、owner、delegate 成员区别 | 静态闭包变量 | 闭包中定义闭包 )(二)
161 0
【Groovy】闭包 Closure ( 闭包类 Closure 简介 | this、owner、delegate 成员区别 | 静态闭包变量 | 闭包中定义闭包 )(二)