科里化闭包:带有预先绑定形参的闭包。在预先绑定一个形参之后,调用闭包时就不必为这个形参提供实参了。有助于去掉方法调用中的冗余重复。
使用curry方法科里化任意多个参数
使用rcurry方法科里化后面的参数
使用ncurry方法科里化中间参数

简单例子:

/**
* Created by Jxy on 2019/1/7 9:12
* 闭包科里化参数
*/
tellFortune(){ date , fortune->
println "$date + $fortune"
}
//科里化参数
def tellFortune(closure){
Date date = new Date("01/07/2019")
// closure date, "one day"
// closure date, "two day"
//科里化参数date, 避免重复发送date
def curry = closure.curry(date)
curry "one day"
curry "two day"
}

结果:

Mon Jan 07 00:00:00 CST 2019 + one day
Mon Jan 07 00:00:00 CST 2019 + two day Process finished with exit code 0
05-11 19:28