文章目录

  • 一、闭包作为函数参数
  • 二、闭包作为函数参数代码示例

一、闭包作为函数参数


声明一个 fun 函数 , 可以 将参数声明为 Closure<?> 闭包类型 , 在该函数中 , 执行闭包内容 ;

声明函数 :

/*** 定义一个方法 , 接收闭包作为参数 , 在方法中执行闭包内容* @param closure* @return*/
def fun(Closure<?> closure) {closure()
}

调用上述函数时 , 只需要 将 闭包 当做 参数 传递到函数中 即可 :

    fun ({println "Closure 1"})

如果 闭包是函数的最后一个参数 , 可以 省略括号 , 将闭包写在函数后面 :

    fun {println "Closure 2"}

二、闭包作为函数参数代码示例


完整代码示例 :

/*** 定义一个方法 , 接收闭包作为参数 , 在方法中执行闭包内容* @param closure* @return*/
def fun(Closure<?> closure) {closure()
}static void main(String[] args) {fun ({println "Closure 1"})fun {println "Closure 2"}
}

执行结果 :

Closure 1
Closure 2

【Groovy】闭包 Closure ( 闭包作为函数参数 | 代码示例 )相关推荐

  1. 【Groovy】闭包 Closure ( 闭包调用 与 call 方法关联 | 接口中定义 call() 方法 | 类中定义 call() 方法 | 代码示例 )

    文章目录 总结 一.接口中定义 call() 方法 二.类中定义 call() 方法 三.完整代码示例 总结 在 实例对象后使用 " () " 括号符号 , 表示调用该实例对象的 ...

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

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

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

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

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

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

  5. 【Groovy】闭包 Closure ( 闭包参数列表规则 | 默认参数列表 | 不接收参数 | 接收自定义参数 )

    文章目录 一.闭包参数列表 二.闭包参数列表代码示例 一.闭包参数列表 闭包的参数设置有如下情况 : 不接收参数 : 如果在定义闭包时 , 只写了 " -> " 符号 , 没 ...

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

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

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

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

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

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

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

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

最新文章

  1. 一个class运用promise的延时调用
  2. MP3文件转换成arduino可以直接播放的wav格式,MP3转WAV工具
  3. mysql 表中添加数据类型_MySQL数据表添加字段(三种方式)
  4. 为什么银行存款不能按复利计息?
  5. c语言编写modbus程序,C语言编写modbus协议
  6. mysql修改字段结构_MySQL修改表结构及其添加删除修改字段功能
  7. 标签页添加点击事件和拖拽事件
  8. Deep Learning for 3D Recognition
  9. Markdown数学符号
  10. [转]HTTP消息格式
  11. Java图书管理系统
  12. Labview视觉模块安装
  13. Gluster源代码阅读3--MGMT Xlator
  14. QQ公众号微信公众号,左右互搏?
  15. 将阿拉伯数字转为中文数字读法
  16. 大型机,小型机,PC-Server
  17. 新的网络架构按下“快进键” 快步走入互联网下半场
  18. 可视化系列讲解:css3D:如何绘制正方体,长方体等
  19. 【编程之外】从《海贼王》的视角走进BAT的世界
  20. matlab求心率,matlab心率分析

热门文章

  1. HDU5709 : Claris Loves Painting
  2. Ember.js 入门指南——handlebars属性绑定
  3. Server2003PDC迁移到Server2008R2BDC
  4. C#操作SqlServer数据库的常用对象,及其方法
  5. mongodb模糊查询包含特殊字符
  6. 实践lnmpde 的安装
  7. Ubuntu 虚拟机空间不足增加空间笔记
  8. Drupal的介绍----第一章:Drupal的介绍
  9. Java:网络编程之UDP的使用
  10. python转载[编码问题]