2011-07-14 1 views
7

returnキーワードはrubyではオプションですので、exitポイントが1つしかない関数の場合、 "return result"は単純に "result"に置き換えることができます。Rubyではリターンステートメントが悪いですか?

これを実行するタイミングはRuby固有のガイドラインがありますか?

私はprocsでの操作が邪魔になるので、できるだけリターンキーワードを避ける傾向があります。

答えて

19

ルビの "return"は、複数の値を返そうとしている場合にのみ使用されます。例えば

return val1, val2 

より早く復帰することが合理的であるかどうか。

#check if needed param is set 
return if !param 

#some operations which need param 

これは、カスケードされたif文でコードを揺らすよりも簡単です。

結論:コードを簡略化するか、理解しやすくするたびにリターンを使用してください。

+0

最初のポイントは間違いありませんか? * def fun; [val1、val2];終わり*もう一つは大丈夫です。 – tokland

+0

配列として複数の値を返すと(前述のように)val1、val2 = funという値を受け取ることはできません。 ret = funをする必要があります。 val1 = ret [0]; val2 = ret [1]で同じ値にします。 – gorootde

+2

申し訳ありませんが、リターンを使用しているかどうかは関係ありません。配列を返しています(後で解凍できます)。* def fun; [1,2];終わり; a、b =楽しみ。 "a =#{a}、b =#{b}" *#=> "a = 1、b = 2" – tokland

関連する問題