2011-07-29 56 views
2

請看下面的例子:安全導航運算符在Groovy中的閉包是什麼樣的?

def c = { println it } 
c("hello, world!") 

這個腳本應該執行沒有錯誤。但是如果c從未定義過(如null)呢?

def c = null 
c("hello, world!") 

此腳本會產生運行時錯誤。在這種情況下是否有安全的導航操作員,或者我堅持if條件?

def c = { println it } 
c?.("hello, world!") 

當c不爲空時,該腳本看起來不起作用。

回答

5

您應該能夠使用更長的call()形式,即:

c?.call('hello world?') 
0

根據您的需求,您可以只使用一個無操作關閉而不是空值。

final c = { println it } 
c('hello world') 


final c = {} 
c('hello world') 
相關問題