我有以下方法
def add_5(a)
a + 5
end
当我呼叫 add_5(5)时,它返回 10
方法
def add_5(a)
a + 5
a + 5 if false
end
当我呼叫 add_5(5)时,它返回 nil 。 我只需要知道为什么会这样
答案 0 :(得分:7)
我只需要知道为什么会发生
b
。 if
表达式的值是相应主体(“ if块”或“ else块”,取决于条件的计算方式)中最后计算的表达式。if
未评估其真实主体(由于其伪造条件),并且没有伪造主体,因此没有任何价值。在这种情况下,通常会返回if
。答案 1 :(得分:3)
此行:a + 5 if false
是所谓的后缀条件运算符或后缀条件。
如果条件不匹配,则所有条件运算符(包括但不限于if
,unless
,case
都会返回nil
。