【发布时间】:2011-06-13 15:29:14
【问题描述】:
Ruby 中有类似于 VB.NET 中的“OrElse”和“AndAlso”的运算符?
例如在 Ruby 中,当 active_record 为 nil 时会引发 NoMethodError 异常:
if active_record.nil? || active_record.errors.count == 0
...
end
在 VB.net 中我可以做到:
If active_record Is Nothing OrElse active_record.errors.count = 0
...
End
这不会产生异常,因为它只检查了第一个表达式
【问题讨论】:
-
代码中的
active_record是实际的库,还是一个示例 active_record 对象? -
在这个例子中active_record是一个可以为nil的对象
-
不知道为什么你会抚摸你的短语。关于最后一个,正确的是在 VB.NET 中,仅当第一个表达式为假时才评估第二个表达式。 This is short circuit operation,同样的事情发生在 Ruby
&&和||。