Groovyのクロージャーの使い方メモ

クロージャーの使いどころがピンと来ていないがとりあえず使い方をメモする。

def methodWithClos(Integer num1, Integer num2, Closure clos) {
  clos.call(num1, num2)
}

methodWithClos(1, 2) { Integer num1 , Integer num2 ->
  println num1 + num2
}

Closure plus = { Integer num1, Integer num2 -> println num1 + num2 }
methodWithClos(1, 2, plus)

Closure minus = { Integer num1, Integer num2 -> println num1 - num2 }
methodWithClos(1, 2, minus)

//
def x = 2
def clos
if (x == 1) {
  clos = { a, b -> println a+b }
} else {
  clos = { a, b -> println a- b}
}

clos(5,7)