我是groovy / grails的新手。想问一下有什么区别:
String x = params?.var1
和
String x=params.var1
为什么我们使用“?”在控制器?
答案 0 :(得分:0)
?
在Groovy中称为 Safe Navifation 运算符。这意味着它会静默捕获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