導入
メソッドには複数の引数を渡したり、途中で処理を打ち切って値を返したりしたいことがあります。return を明示的に使う場面を見ていきましょう。
説明
return 値 と書くと、その時点でメソッドを終了し、指定した値を戻り値にします。
def multiply(a, b)
result = a * b
return result
end
puts multiply(4, 5)
def square(n)
n * n
end
x = square(6)
puts x
return は主に「条件によって早めにメソッドを抜けたいとき」に使います。最後の式がそのまま戻り値になる Ruby では、multiply のように最後の行が result だけならわざわざ return を書かなくても同じ結果になります(両方の書き方を知っておくと読みやすくなります)。
やってみよう
return を使ったメソッドと使わないメソッドを両方書いて、結果が同じになることを確認しましょう。条件によって早く return するメソッドも作ってみてください(例:負の数なら return 0)。
演習
abs_value(n) というメソッドを定義し、n が負の数(n < 0)なら return -n、そうでなければ n を返すようにしてください。puts abs_value(-5) の結果(5)を表示してください。
ヒント1を見る
def abs_value(n) return -n if n < 0; n end のように書けます。
ヒント2を見る
後置ifと組み合わせると短く書けます。