【Groovy】闭包 Closure ( 闭包参数列表规则 | 默认参数列表 | 不接收参数 | 接收自定义参数 )
生活随笔
收集整理的這篇文章主要介紹了
【Groovy】闭包 Closure ( 闭包参数列表规则 | 默认参数列表 | 不接收参数 | 接收自定义参数 )
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 一、閉包參數列表
- 二、閉包參數列表代碼示例
一、閉包參數列表
閉包的參數設置有如下情況 :
- 不接收參數 : 如果在定義閉包時 , 只寫了 " -> " 符號 , 沒有定義參數列表 , 表明該閉包 不希望接收任何參數 , 傳入參數就會報錯 ;
- 默認參數列表 : 如果在定義閉包時 , 沒有寫 " -> " 符號 , 也 沒有定義參數列表 , 閉包可以 接收一個默認參數 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 ( 闭包参数列表规则 | 默认参数列表 | 不接收参数 | 接收自定义参数 )的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Groovy】闭包 Closure (
- 下一篇: 【Groovy】闭包 Closure (