2013-03-10 21 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 

然而,回報只有在不必要時才勸阻

相關問題