Ruby方法执行条件后返回nil值

时间:2018-08-10 06:59:47

标签: ruby return-value

我有以下方法

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 。 我只需要知道为什么会这样

2 个答案:

答案 0 :(得分:7)

  

我只需要知道为什么会发生

  • 方法的隐式返回值是其最后一个计算表达式的值。
  • 您最后计算的表达式是b
  • if表达式的值是相应主体(“ if块”或“ else块”,取决于条件的计算方式)中最后计算的表达式。
  • if未评估其真实主体(由于其伪造条件),并且没有伪造主体,因此没有任何价值。在这种情况下,通常会返回if

答案 1 :(得分:3)

此行:a + 5 if false是所谓的后缀条件运算符或后缀条件。

如果条件不匹配,则所有条件运算符(包括但不限于ifunlesscase都会返回nil