【Groovy】闭包 Closure ( 自定义闭包参数 | 自定义单个闭包参数 | 自定义多个闭包参数 | 闭包参数默认值指定 )
生活随笔
收集整理的這篇文章主要介紹了
【Groovy】闭包 Closure ( 自定义闭包参数 | 自定义单个闭包参数 | 自定义多个闭包参数 | 闭包参数默认值指定 )
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 一、自定義閉包參數列表
- 1、定義一個自定義參數的閉包
- 2、定義多個自定義參數的閉包
- 3、為閉包參數指定默認值
- 二、完整代碼示例
一、自定義閉包參數列表
如果要向 閉包 中 , 傳遞多個參數 , 需要 為 閉包 指定參數列表 ;
為閉包指定參數列表 , 需要在閉包 開始位置使用 " -> " 符號 , 在該符號的左側指定參數列表 ;
1、定義一個自定義參數的閉包
在 " -> " 符號左側寫上一個變量 a , 此時 該變量 a 可以接收任意類型的值 , 在閉包中可以打印該參數 a 的值 ;
// 定義閉包變量 , 聲明一個參數 adef closure3 = { a ->println "${a}"}// 調用閉包 , 不能傳入參數closure3.call(1);closure3(2);上述閉包打印結果為 :
1 22、定義多個自定義參數的閉包
在 " -> " 符號左側寫上多個變量 , 變量之間由逗號隔開 , 如 a , b , 此時該閉包可以接收多個參數 , 這兩個參數可以是任意類型的 ;
// 定義閉包變量 , 聲明兩個參數 a, b// 在閉包中打印這兩個參數def closure4 = { a, b ->println "${a} : ${b}"}// 調用閉包 , 不能傳入參數closure4.call(1, 2);closure4(3, 4);打印結果為 :
1 : 2 3 : 43、為閉包參數指定默認值
在閉包中 , 可以使用 參數名 = 默認值 的方式 , 為閉包參數指定默認值后 , 調用閉包時 , 可以不傳入這個有默認值的參數 ;
如果 閉包 參數 都有默認值 ,
- 可以 不傳遞任何參數 ;
- 如果此時傳遞 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 ( 自定义闭包参数 | 自定义单个闭包参数 | 自定义多个闭包参数 | 闭包参数默认值指定 )的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【错误记录】Groovy 报错 ( Ex
- 下一篇: 【Groovy】闭包 Closure (