【发布时间】:2014-07-23 14:40:40
【问题描述】:
在尝试编写具有高可读性的代码时,我一直使用or 和and 运算符作为|| 和&& 的同义词。不过,现在我了解到or 和and 有不同的应用程序。 http://devblog.avdi.org/2010/08/02/using-and-and-or-in-ruby/
令人困惑的是在我的 rails 应用程序和 IRB 控制台中运行以下代码时的区别。
在 IRB 中:
var = false or true
# => true
在我的 Rails 应用程序中:
var = false or true
# => false
简而言之,or 在 IRB 和实际的 Rails 应用程序中似乎没有相同的优先级。这是令人困惑和误导的。有什么原因吗?
【问题讨论】:
-
实际应用中是如何检查的?
-
这不可能。
-
是的,我刚刚检查了我自己的应用程序,
var = false or true的评估结果为 true。 -
请不要使用虚构的代码。展示一个真实的(但最小的)运行的例子。您发布的代码应始终评估为 true。
-
@Mikael 不要使用
or。使用||。or是通往悲伤的道路。
标签: ruby-on-rails ruby ruby-on-rails-4 boolean irb