【Groovy】闭包 Closure ( 闭包参数列表规则 | 默认参数列表 | 不接收参数 | 接收自定义参数 )
文章目录
- 一、闭包参数列表
- 二、闭包参数列表代码示例
一、闭包参数列表
闭包的参数设置有如下情况 :
- 不接收参数 : 如果在定义闭包时 , 只写了 " -> " 符号 , 没有定义参数列表 , 表明该闭包 不希望接收任何参数 , 传入参数就会报错 ;
- 默认参数列表 : 如果在定义闭包时 , 没有写 " -> " 符号 , 也 没有定义参数列表 , 闭包可以 接收一个默认参数 it ;
- 接收自定义参数 : 如果在定义闭包时 , 写了 " -> " 符号 , 并且 定义参数列表 , 闭包 必须按照参数列表传入参数 ;
如果只使用了 " -> " 符号 , 没有定义参数列表 , 仍然向闭包中传入参数的话 , 在运行时会报错 , 参考 【错误记录】Groovy 运行报错 ( Exception in thread “main“ groovy.lang.MissingMethodException: No signature of ) 博客 ;
二、闭包参数列表代码示例
代码示例 :
import org.codehaus.groovy.ant.Groovyclass Test {static void main(args) {// I. 接收默认一个参数的变薄// 定义闭包变量def closure = {println "Accept One Arguments : ${it}"}// 调用闭包closure.call("Hello");closure("Hello");// II. 不接收任何参数的闭包// 定义闭包变量 , 不允许传入参数def closure2 = { ->println "Not Accept Arguments"}// 传入参数会报错//closure2("Hello")// 调用闭包 , 不能传入参数closure2.call();closure2();// III. 接收一个自定义参数的闭包// 定义闭包变量 , 声明一个参数 adef closure3 = { a ->println "${a}"}// 调用闭包 , 不能传入参数closure3.call(1);closure3(2);// IV. 接收两个自定义参数的闭包// 定义闭包变量 , 声明两个参数 a, b// 在闭包中打印这两个参数def closure4 = { a, b ->println "${a} : ${b}"}// 调用闭包 , 不能传入参数closure4.call(1, 2);closure4(3, 4);// V. 为闭包参数指定默认值// 定义闭包变量 , 声明两个参数 a, b// 并为闭包指定默认值def closure5 = { a = 0, b = "Groovy" ->println "${a} : ${b}"}// 闭包有默认值 , 调用时可以不传入参数closure5()}
}
执行结果 :
Accept One Arguments : Hello
Accept One Arguments : Hello
Not Accept Arguments
Not Accept Arguments
1
2
1 : 2
3 : 4
0 : Groovy
【Groovy】闭包 Closure ( 闭包参数列表规则 | 默认参数列表 | 不接收参数 | 接收自定义参数 )相关推荐
- 【Groovy】闭包 Closure ( 闭包参数绑定 | curry 函数 | rcurry 函数 | ncurry 函数 | 代码示例 )
文章目录 一.闭包参数绑定 1.闭包参数绑定 curry 函数 2.闭包参数绑定 rcurry 函数 3.闭包参数绑定 ncurry 函数 二.完整代码示例 一.闭包参数绑定 闭包 Closure 提 ...
- 【Groovy】闭包 Closure ( 闭包调用 | 闭包默认参数 it | 代码示例 )
文章目录 一.调用闭包 二.闭包默认参数 it 三.代码示例 一.调用闭包 执行 Closure 变量 的 call() 方法 , 可以调用该闭包 ; // 定义闭包变量def closure = { ...
- 【Groovy】闭包 Closure ( 闭包作为函数参数 | 代码示例 )
文章目录 一.闭包作为函数参数 二.闭包作为函数参数代码示例 一.闭包作为函数参数 声明一个 fun 函数 , 可以 将参数声明为 Closure<?> 闭包类型 , 在该函数中 , 执行 ...
- 【Groovy】闭包 Closure ( 闭包的 delegate 代理策略 | OWNER_FIRST | DELEGATE_FIRST | OWNER_ONLY | DELEGATE_ONLY )
文章目录 一.闭包的代理策略引入 二.闭包的四种代理策略 一.闭包的代理策略引入 分别在 Groovy 脚本 和 Test 类中定义 fun 方法 , 打印不同的内容 ; 在闭包 Closure 中分 ...
- 【Groovy】闭包 Closure ( 闭包类 Closure 简介 | this、owner、delegate 成员赋值及源码分析 )
文章目录 总结 一.闭包类 Closure 简介 二.闭包类 Closure 中 this.owner.delegate 成员 源码分析 三.分析编译后的字节码文件内容 总结 在闭包中 , 打印 th ...
- 【Groovy】闭包 Closure ( 闭包类 Closure 简介 | 闭包 parameterTypes 和 maximumNumberOfParameters 成员用法 )
文章目录 一.闭包类 Closure 简介 二. 闭包 parameterTypes 和 maximumNumberOfParameters 成员用法 三. 完整代码示例 一.闭包类 Closure ...
- 【Groovy】闭包 Closure ( 闭包定义 | 闭包类型 | 查看编译后的字节码文件中的闭包类型变量 )
文章目录 一.闭包定义 二.闭包类型 三.查看编译后的字节码文件中的闭包类型变量 一.闭包定义 闭包 Closure 是 Groovy 中最常用的特性 , 使用闭包作为参数是 Groovy 语言的明显 ...
- 【Groovy】闭包 Closure ( 闭包中调用 Groovy 脚本中的方法 | owner 与 delegate 区别 | 闭包中调用对象中的方法 )
文章目录 一.闭包中调用 Groovy 脚本中的方法 二.owner 与 delegate 区别 三.闭包中调用 Groovy 对象中的方法 一.闭包中调用 Groovy 脚本中的方法 在 Groov ...
- 【Groovy】闭包 Closure ( 闭包类 Closure 简介 | this、owner、delegate 成员区别 | 静态闭包变量 | 闭包中定义闭包 )
文章目录 总结 一.静态闭包变量 1.执行普通闭包变量 2.执行静态闭包变量 二. 在闭包中定义闭包 三. 完整代码示例 总结 在闭包中 , 打印 this , owner , delegate , ...
最新文章
- 最新Maven及Tomcat配置~(IDEA版 试错无数!)
- PHP 毫秒级定时器,实现php毫秒定时器方法详解
- Modelsim仿真如何查看内部信号
- redmine上传大文件报错Request Entity Too Large
- 面试了57位数据分析师,我发现牛逼的人都有这4个特质
- 系兄弟就来砍我 有向图单源最短路
- Understanding Quaternions 中文翻译《理解四元数》
- UGUIAnimator模块知识点随记
- SAP BW系统日常维护日常工作及常见的Infopackage错误
- 应用服务器——jetty架构分析
- 工业交换机如何预防雷电?
- 【转】刨根究底CSS(2):CSS中的各种值——初始值,就是默认值吗?
- Docker快速搭建Bugzilla
- 使用git初始化本地仓库并提交到远程分支
- Java基础(二):基本数据类型和变量类型
- 福气太薄,刚积攒了点又被自己扔了
- 模板引擎jade/ejs,模板适配
- linux开机禁用vga设备,用vga_switcheroo在Linux下(开启KMS)彻底关闭某一可切换显卡的简单教程...
- Pandas的基本操作
- 1128: mxh道歉记