2014-01-30 73 views
1

我很明顯做錯了,但是callPrint()不能使用閉包的返回值嗎?我如何正確地將Closure的返回值傳遞給方法?如何從Closure返回一個值到一個方法

void callPrint(def num){ 
    println "${num}"; 
} 

callPrint{return 5}; //does not print 

謝謝。

問候, 約翰

回答

2

你必須通過closurecallPrint方法,實際上調用它裏面:

void callPrint(closure){ 
    println closure.call() 
} 

callPrint{return 5} 

def hello = { return 'Hello' } 

callPrint(hello) 

它打印:

5 
Hello 
+0

或'無效callPrint(閉幕c){println c()}' –

+0

@tim_yates是的,甚至更好:-) – jalopaba

相關問題