🍚

Rubyの世界へようこそ! ~関数、引数、戻り値の基本~

2023/12/24に公開

Rubyの世界へようこそ! ~関数、引数、戻り値の基本~

プログラミング初心者の皆さん、こんにちは!

今回はRuby言語の基本的な概念である「関数」、「引数」、「戻り値」について、「ご飯と炊飯器」を例にして、分かりやすく解説していきます。

プログラミングは初めてという方も安心して、一緒に学んでいきましょう。

お知らせ: 今回だけの特別な表記について
今回の記事では、「日本のプログラミング初心者の方に分かりやすく伝えたい」という特別な理由から、関数名や引数名にローマ字表記を使用している箇所があります。

ただし、関数名や引数名などは、通常は英語表記を使うことが一般的です。今回だけの特別な表記であることをご理解ください。

関数って何?

プログラムを書く上で欠かせないのが「関数」です。

関数は、特定の処理やタスクをひとまとめにして、再利用しやすくするための仕組みです。

関数を、もっと分かりやすくイメージしてもらうために、これから「ご飯」と「炊飯器」を例にしながら、Rubyのコードで解説をします。

gohan.rb
# 自動炊飯器をモチーフにしたauto_gohan_machine関数を定義する。
def auto_gohan_machine
  puts "白米を入れます。"
  puts "水を入れます。"
  puts "スイッチを押します。"
  puts "ご飯が炊けました!"
  takitate_gohan = "炊き立てのご飯"

  puts "本日の一品: #{takitate_gohan}"  
  # 定義した変数を "文字列" の中で使いたい場合は、#{定義した変数名}とすることで、使用することができます。
end

# 関数を実行します。
auto_gohan_machine

完成した自動炊飯器(auto_gohan_machine関数)を使うことで、ご飯を炊く作業を一括して実行してくれます。つまり、auto_gohan_machine関数を使うことで、ボタン1つで炊き立てのご飯を提供してくれるようになったのです。

gohan.rb の実行結果
# 出力結果
白米を入れます。
水を入れます。
スイッチを押します。
ご飯が炊けました!
本日の一品: 炊き立てのご飯

これが、特定の処理やタスクをひとまとめにして、再利用しやすくするという関数の仕組みです。

引数は「材料」 戻り値は「結果」

引数は、関数が実行されるときに渡すデータや情報です。引数を通して、関数に必要な情報を渡し、関数はその情報をもとに処理を行います。

戻り値は、関数が処理を終えた後に返される結果です。

引き続き、「ご飯」と「炊飯器」を例にして説明していきます。

白米に飽きてきたあなたは、「炊き込みご飯」を作ることにしました。炊き込みご飯に使う材料は、シンプルに「栗」と「お出汁」にします。

先ほど作った自動炊飯器(auto_gohan_machine関数)を利用して、材料となる「栗」と「お出汁」を入れて、炊き込みご飯を作ってみましょう!


takikomi_gohan.rb
# 先ほど作った自動炊飯器関数の引数に、kuriとsoupという機能を追加します。
def auto_gohan_machine(kuri, soup)
  puts "白米を入れます。"
  puts "#{kuri}#{soup}を入れます。"
  puts "水を入れます。"
  puts "スイッチを押します。"
  puts "ご飯が炊けました!"
  takikomi_gohan = "#{kuri}#{soup}の炊き込みご飯"

  puts "本日の一品: #{takikomi_gohan}"
end

# 関数を実行するときに、具体的な材料(引数)を持たせます。
auto_gohan_machine("栗", "お出汁")
takikomi_gohan.rb の実行結果
# 出力結果
白米を入れます。
栗とお出汁を入れます。
水を入れます。
スイッチを押します。
ご飯が炊けました!
本日の一品: 栗とお出汁の炊き込みご飯

上記のコードで、まず、関数を実行するところから見てみましょう。

自動炊飯器のボタンを押すときに、("栗", "お出汁)という2つの材料を渡しています。この材料となるデータや情報1つ1つが、関数における引数です。引数は、いくつでも持たせることが可能です。

次に、auto_gohan_machine関数を見てみましょう。

先ほどの材料("栗", "お出汁")を受け取る機能が、auto_gohan_machine関数の( )の中に追加されています。この(kuri, soup)という機能が追加されたことで、この自動炊飯器は「栗」と「お出汁」という2つの引数を受け取ることができるのです。

これにより、今度は「栗とお出汁の炊き込みご飯」を提供してくれました。このように、関数が処理を終えた後に返される結果のことを戻り値と言います。

takikomi_gohan.rb
# 先ほど作った自動炊飯器関数の引数に、kuriとsoupという機能を追加します。
def auto_gohan_machine(kuri, soup)
  puts "白米を入れます。"
  puts "#{kuri}#{soup}を入れます。"
  puts "水を入れます。"
  puts "スイッチを押します。"
  puts "ご飯が炊けました!"
  takikomi_gohan = "#{kuri}#{soup}の炊き込みご飯"

  puts "本日の一品: #{takikomi_gohan}"
end

# 関数を実行するときに、具体的な材料(引数)を持たせます。
auto_gohan_machine("栗", "お出汁")

どのような順番で処理されているか

最後に、上記のコードがどのような順番に読み込まれ、実行されているのかをもう一度整理してみましょう。

  1. 最後の行で、auto_gohan_machine("栗", "お出汁")が実行され、自動炊飯器(auto_gohan_machine関数)を動かす。
  2. auto_gohan_machine関数の引数(kuri, soup)に、材料となる("栗", "お出汁")というデータが渡される。
  3. 2 の処理により、kuri = "栗" , soup = "お出汁" となり、auto_gohan_machine関数内に書かれている処理を実行していく。
  4. 3 の処理により、auto_gohan_machine内にあるkuri, soupと書かれている場所が全て"栗", "お出汁"に置き換わる。
  5. 関数が最後まで処理されることで、「栗とお出汁の炊き込みご飯」が完成する。

まとめ

Rubyの関数、引数、戻り値について解説をしました。

皆さんに分かりやすく伝わっていたら嬉しいです。

まとめとして、要点を振り返りましょう。

  • 関数は、プログラム内で特定の処理をまとめたものです。今回は、自動炊飯器を例に、再利用可能なコードのかたまりとして紹介しました。
  • 引数は、関数に渡す情報であり、「材料」のようなものです。今回は、「栗」と「お出汁」を入れるという情報を引数として、関数に渡しました。
  • 戻り値は、関数が処理を終えた後に返される結果です。「炊き立てご飯」や「炊き込みご飯」など、関数が提供する結果を確認しました。

この基本的な概念を理解することで、より複雑なプログラミングにも一歩近づくことができます。これからも、一緒にプログラミングに挑戦していきましょう!

参考

分かりやすくてオススメ!
https://blog.senseshare.jp/argument.html

Discussion