if(or unless) 修飾子の正式な仕様はどこにも見つかりませんでした。
123 if x > 0
xがゼロを超えていない場合、上記のステートメントの値は何ですか? irbを示唆しnilていますが、どこかに文書化されていますか?
(はい、これはおそらくばかげた質問です。申し訳ありませんが、仕様が見つかりませんでした)。
if(or unless) 修飾子の正式な仕様はどこにも見つかりませんでした。
123 if x > 0
xがゼロを超えていない場合、上記のステートメントの値は何ですか? irbを示唆しnilていますが、どこかに文書化されていますか?
(はい、これはおそらくばかげた質問です。申し訳ありませんが、仕様が見つかりませんでした)。
評価されない式は、存在しない式と同じです。また、条件は、定義やメイン環境などのコードブロックの一部である必要があります。コンテンツのないコードブロックは、に評価されnilます。
class A; end
# => nil
def foo; end
foo
# => nil
()
# => nil
begin; end
# => nil
eval("")
# => nil
したがって、例が返される理由nilは、条件自体とは何の関係もありません。評価がないからです。
はい、そうですnil。他に何を返すことができますか?句内のステートメントifは if 自体に使用され、thenステートメントは実行されません。返すものがないのでnil.
it "returns nil if else-body is empty and expression is false" do
if false
123
else
end.should == nil
end