メソッドから複数の戻り値を返す

メソッドを書いてて、return値の他に文字列も返したいよね、Cだったら文字列引数にそのままセットしちゃうとこだよな、ということがあります。
そういうとき、Rubyでは、Arrayを返すことで複数の戻り値を返すことができます。

  • return 1, "2a", 3
  • return [1, "2a", 3]
  • [1, "2a", 3]

いずれも同じように Arayを返しますが、returnも[]を付けないでいきなり「1, "2a", 3」とやると当たり前ですが「syntax error, unexpected ','」で怒られます。
なお、この(↓)ような多重代入を利用すると、激しく便利です。

def foo
  return 20, 4, 17
end
a, b, c = foo   # a=20 b=4 c=17

参考

  1. こちら(→プログラミング言語 Ruby リファレンスマニュアル)にこのような初心者向けTipsがあります。