&&的一种使用场景

在ruby代码中经常看到这种使用||的idiom:
ruby 代码
 
  1. a = a || b  
  2. # or more concise:  
  3. a ||= b  
但是却很少看到使用&&的场景。如果你在一个方法中想返回一个表达式, 就像这样:
ruby 代码
 
  1. def foo  
  2.    bar.prop  
  3. end  
上面的代码就有个问题, 如果bar对象为nil, 则上面的代码就会抛出错误.修改一下上面的代码:
ruby 代码
 
  1. def foo  
  2.    bar.nil? ? bar : bar.prop  
  3. end 
不够简洁? && rescued!
ruby 代码
 
  1. def foo  
  2.    bar && bar.prop  
  3. end  

你可能感兴趣的:(Ruby)