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