メソッドとは
メソッドは色々な処理をひとつにまとめて定義して、何度も再利用(実行)できるようにしたものです。
メソッドの種類
一般的にプログラミング言語には、メソッド的なものが2種類あります。
- 言語に標準で入っている組み込み関数
- ユーザが自分で定義するユーザ定義関数
ここでは、いわゆるユーザが定義する関数に当たる方を説明します。
メソッドの定義の仕方
Rubyのメソッド定義は、def
とend
の間に、実行したい処理を入れます。
def
とは define(定義する)の略です。
def メソッド名
メソッドが呼ばれたときの処理
end
試しに、1から5までの数字の和を求めるsum
メソッドを 作って見ます。
def sum
result = 0
(1..5).each do |number|
result += number
end
puts result
end
メソッドの呼び出し方
メソッドは呼び出されるまで動きません。なので、さきほど定義した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_順番
メソッドの定義は、メソッドの呼び出しの前である必要があります。これも守らないとエラーになります。