1
我今天一直在重构一些代码,并且使得我的很多方法更加整洁,并且使用了return
。发生在我身上的一件事是,我很少看到在示例代码,博客帖子等中使用过的回复,这导致我认为我做错了什么。在Ruby中使用return是不是惯用法?
在Ruby中使用return而不是惯用法?我是否应该只是想让我的方法通过if
/else
,case
/when
声明返回最终值,而不是用return
提前中断它们?
我今天一直在重构一些代码,并且使得我的很多方法更加整洁,并且使用了return
。发生在我身上的一件事是,我很少看到在示例代码,博客帖子等中使用过的回复,这导致我认为我做错了什么。在Ruby中使用return是不是惯用法?
在Ruby中使用return而不是惯用法?我是否应该只是想让我的方法通过if
/else
,case
/when
声明返回最终值,而不是用return
提前中断它们?
Ruby中的核心是当你需要时只使用返回。如果提前终止并返回使您的方法更清晰,请执行此操作。换句话说:
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
然而,回报只有在不必要时才劝阻。
我相当普遍地看到它们。虽然在单一方法中多次使用它可能是您需要进一步重构的标志。 – PinnyM 2013-03-10 04:20:03
是的,肯定会产生很多意见。我很高兴看到你写了像你所描述的方法,这或多或少正是我一直在做的。 – brad 2013-03-10 05:48:03
https://github.com/bbatsov/ruby-style-guide谈到退货。 – 2013-09-17 04:07:58