2013-03-10 36 views
1

我今天一直在重构一些代码,并且使得我的很多方法更加整洁,并且使用了return。发生在我身上的一件事是,我很少看到在示例代码,博客帖子等中使用过的回复,这导致我认为我做错了什么。在Ruby中使用return是不是惯用法?

在Ruby中使用return而不是惯用法?我是否应该只是想让我的方法通过if/else,case/when声明返回最终值,而不是用return提前中断它们?

+1

我相当普遍地看到它们。虽然在单一方法中多次使用它可能是您需要进一步重构的标志。 – PinnyM 2013-03-10 04:20:03

+0

是的,肯定会产生很多意见。我很高兴看到你写了像你所描述的方法,这或多或少正是我一直在做的。 – brad 2013-03-10 05:48:03

+0

https://github.com/bbatsov/ruby-style-guide谈到退货。 – 2013-09-17 04:07:58

回答

4

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 

然而,回报只有在不必要时才劝阻

相关问题