私が次のようなものを持っているとしましょう
true && true #=> true
これは理にかなっているので、次のようなことを試します。
true && "dsfdsf" #=> "dsfdsf"
if something && something
多くの場合、私は次のようなことをしますが、それが true に評価されて true を返すといつも思っていたので、これは私を驚かせます。次のようなことを行うさらなる実験:
jruby-1.7.3 :009 > "ad" && "dsf"
=> "dsf"
jruby-1.7.3 :010 > "ad" && "sdfd" && nil
=> nil
jruby-1.7.3 :011 > "ad" && nil && "sdf"
=> nil
Ruby は、すべてが true の場合は最後の値を返すか、最初に見つかった false の値を返すように見えます。なぜこれを行うのですか?これは正しいメンタルモデルですか?