groovy閉包科裡化引數
阿新 • • 發佈:2019-01-07
科裡化閉包:帶有預先繫結形參的閉包。在預先繫結一個形參之後,呼叫閉包時就不必為這個形參提供實參了。有助於去掉方法呼叫中的冗餘重複。
使用curry方法科裡化任意多個引數
使用rcurry方法科裡化後面的引數
使用ncurry方法科裡化中間引數
簡單例子:
/** * Created by Jxy on 2019/1/7 9:12 * 閉包科裡化引數 */ tellFortune(){ date , fortune-> println "$date + $fortune" } //科裡化引數 def tellFortune(closure){ Date date = newDate("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