はじめに
メソッド内の処理後、返り値が複数になる場合はどうなるのか気になったので調査し、検証してみました。returnを使わない場合の返り値
test.rb
def return_test(value)
sum_a = 5
sum_b = 10
sum_c = 15
sum_a *= value
sum_b *= value
sum_c *= value
end
value = 10
x = return_test(value)
puts x
結果
=> 150
メソッドの最後の処理結果しか返ってこない
returnで返り値を複数指定した場合
test.rb
def return_test(value)
sum_a = 5
sum_b = 10
sum_c = 15
sum_a *= value
sum_b *= value
sum_c *= value
return sum_a,sum_b,sum_c
end
value = 10
x = return_test(value)
puts x
結果
=> 50
=> 100
=> 150
return返り値を複数指定しても値が返ってくる
上記の例で言うとreturnに複数の式を指定すると変数xに配列の形で値が代入されているようで配列を指定してみるとreturnの後ろに記述した順番で配列が組まれていました。
test.rb
puts x[0] => 50
puts x[1] => 100
puts x[2] => 150
今後も疑問に思ったことを調査、検証してブログに書いていきます。
参考
https://docs.ruby-lang.org/ja/latest/doc/spec=2fcontrol.html#return