在Ruby中使用return不是惯用的吗?

时间:2013-03-10 04:11:38

标签: ruby idioms

我今天一直在重构一些代码,并且通过大量使用return使我的方法更加整洁。我遇到的一件事是,在示例代码,博客文章等中我经常看到返回,这让我觉得我做错了。

在Ruby中使用return不是惯用语吗?我是否应该只是让我的方法通过if / elsecase / when语句返回最终值,而不是通过{{1}提前中断它们}?

1 个答案:

答案 0 :(得分:4)

Ruby中的核心是只在需要时使用return 。如果提前终止返回会使您的方法更清晰,那就去做吧。换句话说:

<强> DO:

def method(arg)
  if(arg == 0) #Special case
    return 42
  end
  arg + 46
end

<强>不

def method(arg)
  return arg + 46
end

<强> BEST:

def method(arg)
  if(arg == 0)
    42
  else
    arg + 46
  end
end

但是,仅在不必要的情况下仅阻止返回

相关问题