欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

【Groovy】闭包 Closure ( 自定义闭包参数 | 自定义单个闭包参数 | 自定义多个闭包参数 | 闭包参数默认值指定 )

发布时间:2025/6/17 64 豆豆
生活随笔 收集整理的这篇文章主要介绍了 【Groovy】闭包 Closure ( 自定义闭包参数 | 自定义单个闭包参数 | 自定义多个闭包参数 | 闭包参数默认值指定 ) 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

文章目录

  • 一、自定义闭包参数列表
    • 1、定义一个自定义参数的闭包
    • 2、定义多个自定义参数的闭包
    • 3、为闭包参数指定默认值
  • 二、完整代码示例





一、自定义闭包参数列表



如果要向 闭包 中 , 传递多个参数 , 需要 为 闭包 指定参数列表 ;

为闭包指定参数列表 , 需要在闭包 开始位置使用 " -> " 符号 , 在该符号的左侧指定参数列表 ;


1、定义一个自定义参数的闭包


在 " -> " 符号左侧写上一个变量 a , 此时 该变量 a 可以接收任意类型的值 , 在闭包中可以打印该参数 a 的值 ;

// 定义闭包变量 , 声明一个参数 adef closure3 = { a ->println "${a}"}// 调用闭包 , 不能传入参数closure3.call(1);closure3(2);

上述闭包打印结果为 :

1 2

2、定义多个自定义参数的闭包


在 " -> " 符号左侧写上多个变量 , 变量之间由逗号隔开 , 如 a , b , 此时该闭包可以接收多个参数 , 这两个参数可以是任意类型的 ;

// 定义闭包变量 , 声明两个参数 a, b// 在闭包中打印这两个参数def closure4 = { a, b ->println "${a} : ${b}"}// 调用闭包 , 不能传入参数closure4.call(1, 2);closure4(3, 4);

打印结果为 :

1 : 2 3 : 4

3、为闭包参数指定默认值


在闭包中 , 可以使用 参数名 = 默认值 的方式 , 为闭包参数指定默认值后 , 调用闭包时 , 可以不传入这个有默认值的参数 ;

如果 闭包 参数 都有默认值 ,

  • 可以 不传递任何参数 ;
  • 如果此时传递 111 个参数 , 会 按照默认规则从左到右为参数赋值 ;

如果 闭包 参数 , 有的有默认值 , 有的没有默认值 , 假设有 222 个参数 , 有 111 个有默认值 , 111 个没有默认值 ;

  • 如果 传递 222 个参数 , 则从左到右赋值即可 ;
  • 如果传递 111 个参数 , 则 为没有默认值的参数赋该值 ;

代码示例 :

// V. 为闭包参数指定默认值// 定义闭包变量 , 声明两个参数 a, b// 并为闭包指定默认值def closure5 = { a = 0, b = "Groovy" ->println "${a} : ${b}"}// 闭包有默认值 , 调用时可以不传入参数closure5()

执行结果 :

0 : Groovy



二、完整代码示例



完整代码示例 :

import org.codehaus.groovy.ant.Groovyclass Test {static void main(args) {// 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()} }

执行结果 :

1 2 1 : 2 3 : 4 0 : Groovy

总结

以上是生活随笔为你收集整理的【Groovy】闭包 Closure ( 自定义闭包参数 | 自定义单个闭包参数 | 自定义多个闭包参数 | 闭包参数默认值指定 )的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。