2014-01-30 72 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

相关问题