1. 程式人生 > >groovy閉包科裡化引數

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