今回は、「メソッド」「引数」「戻り値」についてやさしく解説していきます
メソッド、引数、戻り値ってなに?
何となく分かるけど…という方向けの記事になっています
目次
メソッドとは?
メソッドとは、「処理を1つにまとめて、何回も使える様にする」というものです
と言われてもイメージ付かないですよね…
現実世界でイメージしてみましょう!
*イメージなるので厳密には違う部分もあります
皆さん電子レンジって使った事ありますよね
さらに、何回も使っていると思います
では、電子レンジの機能って何があるでしょうか?
電子レンジの機能
- 時間を設定する
- 時間が過ぎたら音がなる
- 入れられたものを温める
一般的にこの様な機能が電子レンジとして1つにまとまっていますよね
そして私達は、この機能を何回も使っていないでしょうか?
「処理を1つにまとめて、何回も使える様にする」
つまり、電子レンジのような物がメソッドのイメージになります!
メソッドの書き方
#構文
def メソッド名
処理
end
メソッドはdef ~ endではさみ記述していき、def ~ endの間には処理を記述していきます
電子レンジを例に書いてみると
#電子レンジ
def 電子レンジ
時間を測る
終わったら音を鳴らす
温める
end
def ~ endの間には
- 時間を測る
- 終わったら音を鳴らす
- 温める
機能が記述されています
引数とは
引数とは、「メソッドに渡す値」の事です!
また電子レンジでイメージしてみましょう!
私達が普段電子レンジを使う時、電子レンジに渡すものは何でしょうか?
「温めたい物」
ですよね!
この「温めたい物」が引数になります!
水を例にしてみる
電子レンジで水を温めたい時は
- 電子レンジに水を渡す
- 電子レンジの機能で水を温める
- 水がお湯になる
この流れになりますね!
ここで、電子レンジに渡している「水」が引数になります
コードで見てみましょう!
引数はメソッド名の隣に( )で記述します
#引数
def 電子レンジ(水) ←引数で渡されている
時間を測る
終わったら音を鳴らす
温める
end
電子レンジに渡されている物が( )の中に入っていますね!
しかし、この引数には「仮引数」と「実引数」の2種類が存在してるので詳しく解説していきます
仮引数と実引数
引数には仮引数と実引数があります
- 仮引数とは、メソッドに書いてある引数
- 実引数とは、メソッドを呼び出す側に書いてある引数
メソッドを呼び出す側に書いてある引数とは、なんでしょうか?
メソッドは「処理を1つにまとめてある」ものなので、使うためには呼び出す必要があります
電子レンジも使うときにスタートボタンを押して、呼び出している感じがしますよね!
実際に、
どうやって呼び出しているのか?
仮引数と実引数はどの様に使われるのか?コードで詳しく見ていきましょう!
仮引数を見ていきます
#仮引数
def 電子レンジ(温める物) ←仮引数
時間を測る
終わったら音を鳴らす
温める
end
(温める物)に書かれているものは、仮引数になります
電子レンジには、水、パン、冷えたご飯など温めたいものが渡されますよね
渡されるまで、電子レンジは何が来るか分からないので、仮引数です!
実引数を見ていきます
#実引数
def 電子レンジ(温める物) ←仮引数
時間を測る
終わったら音を鳴らす
温める
end
電子レンジ(水) ←実引数
メソッドを呼び出すときには、メソッド名を記述します
8行目で電子レンジを呼び出し、実引数として水を渡しています
この様に、メソッドを呼び出す所には本当に渡す物「実引数」を記述します!
例で流れを見てみます
例1
#流れ
def 電子レンジ(温める物(水)) ←実引数で渡されている
時間を測る
終わったら音を鳴らす
温める
end
電子レンジ(水) ←実引数
8行目で電子レンジを呼び出すときに、実引数に水を指定していきます
すると、仮引数の温める物の所には、水が渡ってくるので
温める物が水に変わります
例2
#引数
def 電子レンジ(温める物(冷凍食品)) ←実引数で渡されている
時間を測る
終わったら音を鳴らす
温める
end
電子レンジ(冷凍食品) ←実引数
8行目で電子レンジを呼び出すときに、実引数に冷凍食品を指定していきます
すると、仮引数の温める物の所には、冷凍食品が渡ってくるので
温める物が冷凍食品に変わります
ポイント
- 何が来るか分からないが、メソッド側で用意しておく引数が仮引数
- メソッドを呼び出すときに、本当に渡す物が実引数
戻り値
戻り値とは「メソッドから戻ってくる値」のことです
メソッドから戻ってくる値とはなんでしょうか?
電子レンジで考えてみると
「温まった物」
になります!
電子レンジ例え
電子レンジに水を渡す
↓
電子レンジの機能で温める
↓
自分の手元に来るものは、温まった水
この温まった水が戻り値になります!
コードで見てみましょう!
#戻り値
def 電子レンジ(温める物(水)) ←実引数で渡されている
時間を測る
終わったら音を鳴らす
温める
end
電子レンジ(水) ←実引数
解説
- 電子レンジを呼び出し、水(実引数)を渡しています
- 電子レンジは水を受け取り、電子レンジの機能で「時間を測り」「終わったら音を鳴らし」「水を温める」
- 電子レンジからできた、「温かい水」が手元に帰ってきます
- 手元とは電子レンジを呼び出した所になるため、電子レンジ(水)というコードが温まった水に変わります(下記コード)
#戻り値
def 電子レンジ(温める物(水)) ←実引数で渡されている
時間を測る
終わったら音を鳴らす
温める
end
温まった水 ←戻り値に変わる
⚠rubyの戻り値は「メソッドの最終行」か「rerurnと書いた行」が戻り値となります
実際のメソッドを確認してみよう
#実際のメソッド理解
def plus_one(number)
number + 1
end
puts plus_one(5)
=> 結果: 6
渡された数字に対して、1プラスして戻すというplus_oneメソッドを作りました
解説
- plus_one(5)はplus_oneメソッドを呼び出し、実引数として5を渡しています
- plus_oneメソッドの仮引数numberに5が渡ります
- numberの中身は5なので、「number + 1」は「5 + 1」となります
- 5 + 1の結果は6になり、戻り値として6が戻ります
- puts plus_one(5)に戻り値の6が来るので、puts 6となります
結果:6と表示されます
以上が、メソッド、返り値、戻り値の説明になります
ここは難しいので、何度も復習して慣れて行きましょう。
お知らせ
私のサイトはで、やさしくプログラミングの記事を配信しています!
ご興味がある方は見てみてくださいね