Ruby

【Ruby入門】メソッド、引数、戻り値をやさしく解説

※当サイトではアフィリエイトプログラムを利用して商品を紹介しています。

 

ひでまる
ひでまる
ひでまるです!
今回は、「メソッド」「引数」「戻り値」についてやさしく解説していきます

 

メソッド、引数、戻り値ってなに?
何となく分かるけど…という方向けの記事になっています

 

 

メソッドとは?

 

メソッドとは、「処理を1つにまとめて、何回も使える様にする」というものです

と言われてもイメージ付かないですよね…

 

現実世界でイメージしてみましょう!
*イメージなるので厳密には違う部分もあります

電子レンジ

皆さん電子レンジって使った事ありますよね
さらに、何回も使っていると思います

 

では、電子レンジの機能って何があるでしょうか?

 

電子レンジの機能

  • 時間を設定する
  • 時間が過ぎたら音がなる
  • 入れられたものを温める

 

一般的にこの様な機能が電子レンジとして1つにまとまっていますよね

そして私達は、この機能を何回も使っていないでしょうか?

 

処理を1つにまとめて、何回も使える様にする

 

つまり、電子レンジのような物がメソッドのイメージになります!

 

 

メソッドの書き方

 

#構文
def メソッド名
 処理
end

 

メソッドはdef ~ endではさみ記述していき、def ~ endの間には処理を記述していきます

電子レンジを例に書いてみると

#電子レンジ
def 電子レンジ
 時間を測る
 終わったら音を鳴らす
 温める
end

 

def ~ endの間には

  • 時間を測る
  • 終わったら音を鳴らす
  • 温める

機能が記述されています

 

引数とは

 

引数とは、「メソッドに渡す値」の事です!

また電子レンジでイメージしてみましょう!

 

私達が普段電子レンジを使う時、電子レンジに渡すものは何でしょうか?

温めたい物

ですよね!

この「温めたい物」が引数になります!

 

水を例にしてみる

 

水

電子レンジで水を温めたい時は

  1. 電子レンジに水を渡す
  2. 電子レンジの機能で水を温める
  3. 水がお湯になる

この流れになりますね!

ここで、電子レンジに渡している「」が引数になります

 

コードで見てみましょう!
引数はメソッド名の隣に(  )で記述します

#引数
def 電子レンジ(水) ←引数で渡されている
 時間を測る
 終わったら音を鳴らす
 温める
end

 

電子レンジに渡されている物が(  )の中に入っていますね!

しかし、この引数には「仮引数」と「実引数」の2種類が存在してるので詳しく解説していきます

 

仮引数と実引数

引数には仮引数と実引数があります

  • 仮引数とは、メソッドに書いてある引数
  • 実引数とは、メソッドを呼び出す側に書いてある引数

 

メソッドを呼び出す側に書いてある引数とは、なんでしょうか?

メソッドは「処理を1つにまとめてある」ものなので、使うためには呼び出す必要があります
電子レンジも使うときにスタートボタンを押して、呼び出している感じがしますよね!

 

実際に、
どうやって呼び出しているのか?
仮引数と実引数はどの様に使われるのか?コードで詳しく見ていきましょう!

 

仮引数を見ていきます

 

#仮引数
def 電子レンジ(温める物) ←仮引数
 時間を測る
 終わったら音を鳴らす
 温める
end

 

(温める物)に書かれているものは、仮引数になります

電子レンジには、水、パン、冷えたご飯など温めたいものが渡されますよね
渡されるまで、電子レンジは何が来るか分からないので、仮引数です!

 

実引数を見ていきます

 

#実引数
def 電子レンジ(温める物) ←仮引数
 時間を測る
 終わったら音を鳴らす
 温める
end

電子レンジ(水) ←実引数

 

メソッドを呼び出すときには、メソッド名を記述します

 

8行目で電子レンジを呼び出し、実引数として水を渡しています

この様に、メソッドを呼び出す所には本当に渡す物「実引数」を記述します!

 

例で流れを見てみます

 

例1
#流れ
def 電子レンジ(温める物(水)) ←実引数で渡されている
 時間を測る
 終わったら音を鳴らす
 温める
end

電子レンジ(水) ←実引数

 

8行目で電子レンジを呼び出すときに、実引数に水を指定していきます

すると、仮引数の温める物の所には、水が渡ってくるので
温める物が水に変わります

 

例2
#引数
def 電子レンジ(温める物(冷凍食品)) ←実引数で渡されている
 時間を測る
 終わったら音を鳴らす
 温める
end

電子レンジ(冷凍食品) ←実引数

 

8行目で電子レンジを呼び出すときに、実引数に冷凍食品を指定していきます

すると、仮引数の温める物の所には、冷凍食品が渡ってくるので
温める物が冷凍食品に変わります

 

ポイント

  • 何が来るか分からないが、メソッド側で用意しておく引数が仮引数
  • メソッドを呼び出すときに、本当に渡す物が実引数

 

戻り値

 

戻り値とは「メソッドから戻ってくる値」のことです

メソッドから戻ってくる値とはなんでしょうか?

 

電子レンジで考えてみると

温まった物

になります!

 

電子レンジ例え

電子レンジに水を渡す

電子レンジの機能で温める

自分の手元に来るものは、温まった水

 

この温まった水が戻り値になります!

 

コードで見てみましょう!

 

#戻り値
def 電子レンジ(温める物(水)) ←実引数で渡されている
 時間を測る
 終わったら音を鳴らす
 温める
end

電子レンジ(水) ←実引数

 

解説

  1. 電子レンジを呼び出し、水(実引数)を渡しています
  2. 電子レンジは水を受け取り、電子レンジの機能で「時間を測り」「終わったら音を鳴らし」「水を温める」
  3. 電子レンジからできた、「温かい水」が手元に帰ってきます
  4. 手元とは電子レンジを呼び出した所になるため、電子レンジ(水)というコードが温まった水に変わります(下記コード)

 

#戻り値
def 電子レンジ(温める物(水)) ←実引数で渡されている
 時間を測る
 終わったら音を鳴らす
 温める
end

温まった水 ←戻り値に変わる

 

⚠rubyの戻り値は「メソッドの最終行」か「rerurnと書いた行」が戻り値となります

 

実際のメソッドを確認してみよう

 

#実際のメソッド理解
def plus_one(number)
 number + 1
end

puts plus_one(5)
=> 結果: 6

 

渡された数字に対して、1プラスして戻すというplus_oneメソッドを作りました

解説

  1. plus_one(5)はplus_oneメソッドを呼び出し、実引数として5を渡しています
  2. plus_oneメソッドの仮引数numberに5が渡ります
  3. numberの中身は5なので、「number + 1」は「5 + 1」となります
  4. 5 + 1の結果は6になり、戻り値として6が戻ります
  5. puts plus_one(5)に戻り値の6が来るので、puts 6となります

 

結果:6と表示されます

 

以上が、メソッド、返り値、戻り値の説明になります
ここは難しいので、何度も復習して慣れて行きましょう。

お知らせ

私のサイトはで、やさしくプログラミングの記事を配信しています!
ご興味がある方は見てみてくださいね

>>rubyをやさしく解説

-Ruby
-, , , ,