我在任何地方都找不到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