メソッドから戻り値を取得する

メソッドでは戻り値をメソッドの呼び出し元に返すことができます。例えば引数を指定してメソッドを呼び出し、受け取った値を使ってメソッド側で計算を行い、その結果を呼び出し元に返すといったことができます。ここでは 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 )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。