文章目录

  • 一、闭包参数列表
  • 二、闭包参数列表代码示例

一、闭包参数列表


闭包的参数设置有如下情况 :

  • 不接收参数 : 如果在定义闭包时 , 只写了 " -> " 符号 , 没有定义参数列表 , 表明该闭包 不希望接收任何参数 , 传入参数就会报错 ;
  • 默认参数列表 : 如果在定义闭包时 , 没有写 " -> " 符号 , 也 没有定义参数列表 , 闭包可以 接收一个默认参数 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 ( 闭包参数列表规则 | 默认参数列表 | 不接收参数 | 接收自定义参数 )相关推荐

  1. 【Groovy】闭包 Closure ( 闭包参数绑定 | curry 函数 | rcurry 函数 | ncurry 函数 | 代码示例 )

    文章目录 一.闭包参数绑定 1.闭包参数绑定 curry 函数 2.闭包参数绑定 rcurry 函数 3.闭包参数绑定 ncurry 函数 二.完整代码示例 一.闭包参数绑定 闭包 Closure 提 ...

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

    文章目录 一.调用闭包 二.闭包默认参数 it 三.代码示例 一.调用闭包 执行 Closure 变量 的 call() 方法 , 可以调用该闭包 ; // 定义闭包变量def closure = { ...

  3. 【Groovy】闭包 Closure ( 闭包作为函数参数 | 代码示例 )

    文章目录 一.闭包作为函数参数 二.闭包作为函数参数代码示例 一.闭包作为函数参数 声明一个 fun 函数 , 可以 将参数声明为 Closure<?> 闭包类型 , 在该函数中 , 执行 ...

  4. 【Groovy】闭包 Closure ( 闭包的 delegate 代理策略 | OWNER_FIRST | DELEGATE_FIRST | OWNER_ONLY | DELEGATE_ONLY )

    文章目录 一.闭包的代理策略引入 二.闭包的四种代理策略 一.闭包的代理策略引入 分别在 Groovy 脚本 和 Test 类中定义 fun 方法 , 打印不同的内容 ; 在闭包 Closure 中分 ...

  5. 【Groovy】闭包 Closure ( 闭包类 Closure 简介 | this、owner、delegate 成员赋值及源码分析 )

    文章目录 总结 一.闭包类 Closure 简介 二.闭包类 Closure 中 this.owner.delegate 成员 源码分析 三.分析编译后的字节码文件内容 总结 在闭包中 , 打印 th ...

  6. 【Groovy】闭包 Closure ( 闭包类 Closure 简介 | 闭包 parameterTypes 和 maximumNumberOfParameters 成员用法 )

    文章目录 一.闭包类 Closure 简介 二. 闭包 parameterTypes 和 maximumNumberOfParameters 成员用法 三. 完整代码示例 一.闭包类 Closure ...

  7. 【Groovy】闭包 Closure ( 闭包定义 | 闭包类型 | 查看编译后的字节码文件中的闭包类型变量 )

    文章目录 一.闭包定义 二.闭包类型 三.查看编译后的字节码文件中的闭包类型变量 一.闭包定义 闭包 Closure 是 Groovy 中最常用的特性 , 使用闭包作为参数是 Groovy 语言的明显 ...

  8. 【Groovy】闭包 Closure ( 闭包中调用 Groovy 脚本中的方法 | owner 与 delegate 区别 | 闭包中调用对象中的方法 )

    文章目录 一.闭包中调用 Groovy 脚本中的方法 二.owner 与 delegate 区别 三.闭包中调用 Groovy 对象中的方法 一.闭包中调用 Groovy 脚本中的方法 在 Groov ...

  9. 【Groovy】闭包 Closure ( 闭包类 Closure 简介 | this、owner、delegate 成员区别 | 静态闭包变量 | 闭包中定义闭包 )

    文章目录 总结 一.静态闭包变量 1.执行普通闭包变量 2.执行静态闭包变量 二. 在闭包中定义闭包 三. 完整代码示例 总结 在闭包中 , 打印 this , owner , delegate , ...

最新文章

  1. 最新Maven及Tomcat配置~(IDEA版 试错无数!)
  2. PHP 毫秒级定时器,实现php毫秒定时器方法详解
  3. Modelsim仿真如何查看内部信号
  4. redmine上传大文件报错Request Entity Too Large
  5. 面试了57位数据分析师,我发现牛逼的人都有这4个特质
  6. 系兄弟就来砍我 有向图单源最短路
  7. Understanding Quaternions 中文翻译《理解四元数》
  8. UGUIAnimator模块知识点随记
  9. SAP BW系统日常维护日常工作及常见的Infopackage错误
  10. 应用服务器——jetty架构分析
  11. 工业交换机如何预防雷电?
  12. 【转】刨根究底CSS(2):CSS中的各种值——初始值,就是默认值吗?
  13. Docker快速搭建Bugzilla
  14. 使用git初始化本地仓库并提交到远程分支
  15. Java基础(二):基本数据类型和变量类型
  16. 福气太薄,刚积攒了点又被自己扔了
  17. 模板引擎jade/ejs,模板适配
  18. linux开机禁用vga设备,用vga_switcheroo在Linux下(开启KMS)彻底关闭某一可切换显卡的简单教程...
  19. Pandas的基本操作
  20. 1128: mxh道歉记

热门文章

  1. 5个强大的Java分布式缓存框架推荐
  2. F3PlotStrip
  3. Python爬虫(六)_Requests的使用
  4. 茶香账簿小程序开发进度(1)
  5. 原创:Docker在云家政的应用 谢绝复制粘贴内容
  6. js中的apply()、call() 和 bind()
  7. 用原生JavaScript实现图片瀑布流的浏览效果
  8. Button单击事件处理:
  9. 2013计算机视觉代码合集二
  10. POJ 2010 Moo University - Financial Aid(堆维护滑窗kth,二分)