戻り値
CoddyのRubyジャーニー「基礎」セクションの一部 — レッスン 50/88。
これまで、メソッドは出力を表示するなどのアクションを実行してきました。しかし、メソッドが真に強力になるのは、呼び出し元のコードにデータを送り返すことができるようになったときです。これが戻り値(return values)の役割です。
Rubyでは、メソッドは最後の式の値を自動的に返します。
def add(a, b)
a + b
end
result = add(5, 3)
puts result # 出力: 8メソッドの中に puts がないことに注目してください。その代わりに、メソッドは a + b を計算し、その値を返します。その後、それを変数に保存したり、直接使用したりすることができます。
また、returnキーワードを明示的に使用することもできます:
def multiply(a, b)
return a * b
end
puts multiply(4, 5) # 出力: 20return キーワードは、メソッドを即座に終了し、指定された値を返します。これは、条件に基づいて早期に終了したい場合に便利です。どちらのアプローチも機能しますが、Rubyプログラマーはコードをよりクリーンにするために、暗黙的な戻り値(implicit returns)に頼ることがよくあります。
戻り値を利用することで、操作を連結したり、シンプルなメソッドから複雑なロジックを構築したりできます。
def double(n)
n * 2
end
puts double(double(3)) # 出力: 12チャレンジ
簡単1つのパラメータ n を受け取り、その数値の2乗(その数値自身を掛け合わせたもの)を返す square という名前のメソッドを定義してください。
入力から2つの整数を読み取ります。square メソッドを使用して各数値の2乗を計算し、それら2つの2乗の和を出力してください。
例えば、入力が 3 と 4 の場合:
- 3の2乗は9
- 4の2乗は16
- 和は25
出力は以下のようになります:
25入力が 5 と 2 の場合、出力は以下のようになります:
29チートシート
メソッドは、それを呼び出したコードに値を返すことができます。Rubyでは、メソッドは自動的にその最後の式の値を返します。
def add(a, b)
a + b
end
result = add(5, 3)
puts result # 出力: 8また、returnキーワードを明示的に使用して、メソッドを終了し値を返すこともできます。
def multiply(a, b)
return a * b
end
puts multiply(4, 5) # 出力: 20戻り値を使用すると、メソッド呼び出しを連結させることができます。
def double(n)
n * 2
end
puts double(double(3)) # 出力: 12自分で試してみよう
# 入力から2つの整数を読み込む
num1 = gets.chomp.to_i
num2 = gets.chomp.to_i
# TODO: 以下にsquareメソッドを定義する
# TODO: squareメソッドを使用して平方の和を計算し、結果を表示するこのレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。