&. 操作符作用: 起到空指针保护的作用,和 Rails ActiveSupport 引入的方法try作用相似
例如 一个user 有一个address,如果你想使用这个address代码如下
第一种写法
if user && user.address## some code end首先,先判断这个user不能为nil, 然后再判断 address 不能为nil,同时不为nil 的时候你才能操作这个address
使用ActiveSupport的try
if user.try(:address) ## some code end
使用&.
if user&.address ## some code end
如上我们看到 &.用法更简洁
备注:
第一种和使用&.的结果是一样的。
和try的不同:
try不会去判断对象上是否能响应方法,如果不能最终返回的结果是nil,
&.则会检查对象是否能响应方法
更多信息可以看这里
作者:就叫初九吧
链接:https://www.jianshu.com/p/8b651079e76b