groovy闭包科里化参数
科里化闭包:带有预先绑定形参的闭包。在预先绑定一个形参之后,调用闭包时就不必为这个形参提供实参了。有助于去掉方法调用中的冗余重复。
使用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
gogogo