メソッドから戻り値を取得する
メソッドでは戻り値をメソッドの呼び出し元に返すことができます。例えば引数を指定してメソッドを呼び出し、受け取った値を使ってメソッド側で計算を行い、その結果を呼び出し元に返すといったことができます。ここでは Ruby のメソッドでメソッドから戻り値を取得する方法について解説します。
(Last modified: )
メソッドから戻り値を取得する
メソッドを呼び出したときに、メソッドからの戻り値を受け取るには次の書式を使用します。
変数 = メソッド名(引数1, 引数2, ...)
メソッド呼び出し側では、メソッドからの戻り値があった場合、メソッド呼び出しの式が戻り値を返します。その為、上記のように変数などに格納することが可能です。
メソッド側ではメソッド内に記述した return
文の後ろに記述された式の値が戻り値となります。
def メソッド名(変数1, 変数2, ...,) 実行する処理 実行する処理 return 式 end
return
のあとの式には単なるオブジェクトだけでなく演算式などを記述できます。演算式を記述した場合はその結果が戻り値として返されます。 メソッド内のいずれかの場所で return
文が実行されればメソッド内の処理は終了します。
具体的には次のように記述します。
def calc(num1, num2) return num1 + num2 end sum = calc(10, 25) puts("合計 = " + sum.to_s)
今回の場合は return
の次に記述された num1 + num2
の結果がメソッドの戻り値となります。メソッド呼び出し側では戻り値をいったん変数「sum」に代入し、その後で表示しています。
なお return
は省略可能です。省略された場合はメソッド内の最後の式を評価した値が戻り値となります。また return
文を使用すればメソッド内のどの位置であっても記述することが可能です。
def hikaku(num1, num2) if num1 > num2 then return num1 else return num2 end end num = hikaku(10, 25) puts("大きい値 = " + num.to_s)
上記ではメソッド内で引数として渡されてきたオブジェクトを比較し、実行する return
文を分けています。
では簡単なプログラムで確認してみます。
# encoding: UTF-8 def hikaku(num1, num2) puts("num1 = " + num1.to_s) puts("num2 = " + num2.to_s) if num1 > num2 then return num1 else return num2 end end num = hikaku(10, 18) puts("大きい値は " + num.to_s + " です") puts() num = hikaku(27, 5) puts("大きい値は " + num.to_s + " です")
下記のように実行して下さい。
-- --
Ruby のメソッドでメソッドから戻り値を取得する方法について解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
プログラミングや開発環境構築の解説サイトを運営しています。