Ruby on rails IRB控制台和rails应用程序评估';或';不同地

Ruby on rails IRB控制台和rails应用程序评估';或';不同地,ruby-on-rails,ruby,ruby-on-rails-4,boolean,irb,Ruby On Rails,Ruby,Ruby On Rails 4,Boolean,Irb,在我尝试编写具有高可读性的代码时,我一直使用或和和操作符作为|和&的同义词。不过,现在我已经了解到,或和和有着不同的应用 令人困惑的是在rails应用程序和IRB控制台中运行以下代码时的区别 在IRB中: var = false or true # => true 在my rails应用程序中: var = false or true # => false 简而言之,或在IRB和实际rails应用程序中似乎没有相同的优先级。这是令人困惑和误导的。有什么原因吗?我认为你误解了结果。

在我尝试编写具有高可读性的代码时,我一直使用
操作符作为
|
&
的同义词。不过,现在我已经了解到,
有着不同的应用

令人困惑的是在rails应用程序和IRB控制台中运行以下代码时的区别

在IRB中:

var = false or true
# => true
在my rails应用程序中:

var = false or true
# => false

简而言之,
在IRB和实际rails应用程序中似乎没有相同的优先级。这是令人困惑和误导的。有什么原因吗?

我认为你误解了结果。在irb和rails中,表达式的解释方式应该没有区别。当您这样做时:

var = false or true
它被解释为:

(var = false) or true

之后,
var
的值为
false
,其返回值为
true
。由于irb返回表达式的返回值,因此将得到
true
。如果在rails应用程序中检查
var
的值,则应将其计算为
false

在实际应用中如何检查?这不可能是正确的。是的,我刚刚在自己的应用程序中检查过,
var=false或true
正在计算为true。请不要使用虚构的代码。展示一个真实(但最少)的运行示例。您发布的代码应始终计算为true。@Mikael不要使用
。使用
|
是通往悲伤的途径。当然是这样。我误解了IRB。非常感谢。