LoginSignup
19
21

More than 5 years have passed since last update.

Rubyのメソッドについて

Posted at

メソッドとは

メソッドは色々な処理をひとつにまとめて定義して、何度も再利用(実行)できるようにしたものです。

メソッドの種類

一般的にプログラミング言語には、メソッド的なものが2種類あります。

  • 言語に標準で入っている組み込み関数
  • ユーザが自分で定義するユーザ定義関数

ここでは、いわゆるユーザが定義する関数に当たる方を説明します。

メソッドの定義の仕方

Rubyのメソッド定義は、defendの間に、実行したい処理を入れます。

defとは define(定義する)の略です。

定義の仕方
def メソッド名
  メソッドが呼ばれたときの処理
end

試しに、1から5までの数字の和を求めるsumメソッドを 作って見ます。

sumメソッドの定義の仕方
def sum
  result = 0
  (1..5).each do |number|
    result += number
  end
  puts result
end

メソッドの呼び出し方

メソッドは呼び出されるまで動きません。なので、さきほど定義したsumメソッドを呼び出してみます。

sumメソッドの定義と呼び出し
def sum
  result = 0
  (1..5).each do |number|
    result += number
  end
  puts result
end

sum()

# 実行結果 15

引数なしの()なしの呼び出し

定義したメソッドはメソッド名を書くだけでも呼び出し可能です。

def hello
  puts "say Hello"
end

hello

# 実行結果 say Hello

メソッドの呼び出し方(再利用可能)

一度メソッドを定義しておくと、何度でも再利用できます。

def hello
  puts "say Hello"
end

hello
hello

# 実行結果 
# say Hello
# say Hello

このように

  • 何回も使えること
  • 処理の呼び出しにラベル(メソッド名)だけで呼び出せる

ことがメソッドのいいポイントかなと思います。

メソッドの引数について

メソッドには引数を渡すこともできます。これにより、引数次第で結果が変わるメソッドになります。

# メソッドの定義
def sum(a,b)
  result = 0
  (a..b).each do |number|
    result += number
  end
  puts result
end

# メソッドの呼び出し
sum(1,5)

# 実行結果 15

定義したa と bに対応しているのが、呼び出し元の1 と 5です。

引数の順番を間違えると、予期しない結果が起きてしまうので注意です。

また、メソッドの呼び出しのかっこは省略できます。

# メソッドの定義
def sum(a,b)
  result = 0
  (a..b).each do |number|
    result += number
  end
  puts result
end

# メソッドの呼び出し
sum 1,5

# 実行結果 15

メソッドの返り値(return)について

これまでは、メソッド内で処理したデータを表示(puts)していましたが、メソッド内でゴニョゴニョした結果を変数に格納したい場合はreturnを使用します。

# メソッドの定義
def sum(a,b)
  result = 0
  (a..b).each do |number|
    result += number
  end
  return result
end

# メソッドの呼び出しと変数に格納
number1 = sum(1,5)
number2 = sum 1,5

# 実行結果 両方とも15
puts number1
puts number2

また、メソッド内のreturnは省略可能です。なぜなら、メソッド内の最後の行はリターンするものと決まっているので。

# メソッドの定義
def sum(a,b)
  result = 0
  (a..b).each do |number|
    result += number
  end
  result
end

# メソッドの呼び出しと変数に格納
number1 = sum(1,5)
number2 = sum 1,5

# 実行結果 両方とも15
puts number1
puts number2

メソッドを使う時の注意点

注意点1_メソッド名の命名規則

  • 1.1文字目は英文字かアンスコ(_
  • 2.2文字目以降は英数文字かアンスコ(_

この決まりを守らないとエラーになります

注意点2_順番

メソッドの定義は、メソッドの呼び出しの前である必要があります。これも守らないとエラーになります。

参考

19
21
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
21