我是groovy/grails新手。要問的是什麼樣的區別: 「?」如何向控制器發送參數
String x = params?.var1
和
String x=params.var1
我們爲什麼使用在控制器?
我是groovy/grails新手。要問的是什麼樣的區別: 「?」如何向控制器發送參數
String x = params?.var1
和
String x=params.var1
我們爲什麼使用在控制器?
?
叫做安全導航運營商在Groovy。這意味着它會默默地捕獲NullPointerException,如果它發生並返回null。例如:
Map params = null
String x = params?.var1 // assigns null to variable x
String y = params.var1 // throws NullPointerException because params is null
,如果你認爲特定的變量可以是一個null
,你不想檢查,如果它的每一次不爲空這是非常有用的。在這種情況下,您使用安全的導航運算符,並且您接受鏈接調用的結果可能會返回null
。
參考:http://groovy-lang.org/operators.html#_safe_navigation_operator
謝謝你這麼多@Szymon –
我很高興我能幫你:) –
的可能的複製[?什麼是問號運營商紅寶石的意思(https://stackoverflow.com/questions/1345843/what-does-the-question- mark-operator-mean-in-ruby) – moritzg