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