クロージャについてメモ

クロージャとは?

  • オブジェクトである
  • メソッドと似ている
  • パラメータを受け取り、値を返すことが出来る
  • クロージャを呼び出す時は、クロージャが期待するのと同じ数の引数が必要(一緒にしないと、groovy.lang.MissingMethodExceptionがでる)

クロージャの書き方
例)

Closure envelope = { person -> new Letter(person).send() }
addressBook.each(envelope)

上の例をもっと簡単に書くと↓のようになる

addressBook.each{ new Letter(it).send() }

{}で囲うとクロージャになる。(そうじゃない場合もある)

クロージャにとってパラメータが1個だけの時は、itで代用することができる

クロージャはオブジェクトなので、代入することが出来る
例)

def printer = { println it }
/* 呼び出す時 */
printer(1)
/* または */
printer.call(1)

Groovyイン・アクション

Groovyイン・アクション