日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發布時間:2025/6/17 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【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 ( 自定义闭包参数 | 自定义单个闭包参数 | 自定义多个闭包参数 | 闭包参数默认值指定 )的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。