2017-07-27 114 views
0

我是groovy/grails新手。要問的是什麼樣的區別: 「?」如何向控制器發送參數

String x = params?.var1 

String x=params.var1 

我們爲什麼使用在控制器?

+3

的可能的複製[?什麼是問號運營商紅寶石的意思(https://stackoverflow.com/questions/1345843/what-does-the-question- mark-operator-mean-in-ruby) – moritzg

回答

0

?叫做安全導航運營商在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

+0

謝謝你這麼多@Szymon –

+0

我很高興我能幫你:) –