首页 > 解决方案 > Ruby 方法在执行条件后返回 nil 值

问题描述

我有以下方法

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

标签: rubyreturn-value

解决方案


我只需要知道为什么会这样

  • 方法的隐式返回值是其最后评估的表达式的值。
  • 您最后评估的表达式是if.
  • 表达式的值if是相应主体中最后评估的表达式(“if 块”或“else 块”,取决于条件的评估方式)。
  • if没有评估它的真体(由于它的假条件)并且它没有假体,所以它没有价值。在这种情况下,nil通常会被退回。

推荐阅读