我是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