更新:2つの変数を間違って入力しました...とても恥ずかしいです。みんなの努力に感謝します!
申し訳ありませんが、2つの異なる環境に間違った値を入力しました。最初の1つは設定sort = 0
しrating=1
ましたが、irbでは設定sort=1
しrating=0
ました。それが評価するa and b
ときa=1
だけb
なので、2番目の状況で私は得false
ます。今、それは明らかになります。不注意でごめんなさい、みんなの努力に感謝します!
======================
私の質問:私は2つの変数を持っていますsort
がrating
、両方ともsort&&rating == 1
、sort and rating ==1
以下のように2つの異なる環境で異なる動作をします:
まず、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は非常に動的であるため、この状況は可能ですか?