更新:我打错了 2 个变量……太尴尬了。感谢大家的努力!
抱歉,我发现我为 2 个不同的 env 输入了错误的值,第一个是我设置的sort = 0
,rating=1
然后在 irb 中我设置了sort=1
和rating=0
。因为a and b
当a=1
它只b
在第二种情况下评估时,我得到了false
。现在很清楚了。粗心见谅,感谢大家的努力!
=======================
我的问题:我有 2 个变量sort
和rating
,但两者在 2 个不同的环境sort&&rating == 1
中sort and rating ==1
表现不同,如下所示:
1st,在我执行时在rails的调试器环境中rails server --debug
,它们都返回true
:
(rdb:130) rating
1
(rdb:130) sort
0
(rdb:130) sort and rating == 1
true
(rdb:130) sort && rating == 1
true
(rdb:130) (sort && rating) == 1
true
第二,在正常的irb中,它们都返回false
:
irb(main):001:0> sort = 1
=> 1
irb(main):002:0> rating = 0
=> 0
irb(main):003:0> sort||rating
=> 1
irb(main):004:0> sort and rating
=> 0
irb(main):005:0> sort and rating == 1
=> false
irb(main):006:0> sort && rating == 1
=> false
irb(main):007:0> 0 == true
=> false
irb(main):008:0>
我知道 Ruby 是如此动态,以至于……这种情况可能吗?