24

1 つの引数 ( で参照) を取るクロージャを定義したいit場合、クロージャに別の追加の引数を渡したい場合があります。これどうやってするの?

4

3 に答える 3

42

2番目の引数をデフォルト値(nullなど)に設定できます。

def cl = { a, b=null ->
  if( b != null ) {
    print "Passed $b then "
  }
  println "Called with $a"
}

cl( 'Tim' )          // prints 'Called with Tim'
cl( 'Tim', 'Yates' ) // prints 'Passed Yates then Called with Tim

別のオプションはb、次のようにvarargリストを作成することです。

def cl = { a, ...b ->
  if( b ) {
    print "Passed $b then "
  }
  println "Called with $a"
}

cl( 'Tim' )                    // prints 'Called with Tim'
cl( 'Tim', 'Yates' )           // prints 'Passed [Yates] then Called with Tim
cl( 'Tim', 'Yates', 'Groovy' ) // prints 'Passed [Yates, Groovy] then Called with Tim
于 2012-09-25T09:54:30.853 に答える
3

うまくいけば、これが役立ちます

​def clr = {...a ->  
    print "Passed $a then "
    enter code here

}

​clr('Sagar')
clr('Sagar','Rahul')
于 2016-05-19T06:58:06.197 に答える