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

猜你喜欢

转载自www.cnblogs.com/jsersudo/p/10231474.html
今日推荐