def adder = { x, y -> return x+y}
println adder(4,3)
println adder.call(4,3)
실행해보면 7 이 두번 출력된다.
메서드처럼 클로저도 인자에 디폴트 값을 지정할 수 있다.
def adder = { x, y = 3-> return x+y}
println adder(4,3)
println adder.call(4)
역시 7 이 두번 출력된다.하지만 메서드처럼 쓸 수 있다는 것은 그다지 큰 충격이 아니다. 그보다는, 메서드를 호출하면서 "코드블럭"을 전달 할 수 있다는 것. 그럴싸해보인다.
def repeater(count, Closure worker) {
count.times{worker(it);}
}
repeater(100) {println it}
자바니까, 식별자들에 한글도 들어간다.
def 반복해(횟수, Closure 일꾼) {
횟수.times{일꾼(it);}
}
반복해(100) {println it}


