メソッドで処理をまとめよう
学習の目標
本章では、以下の内容を学習します。
- メソッドの概念と基本的な役割を理解する
- メソッドを定義する方法を習得する
- メソッドを呼び出す方法を学ぶ
- メソッドの命名規則を理解する
- メソッド内で複数の処理を記述する方法を習得する
はじめに
プログラミングを行っていると、同じ処理を何度も繰り返し書くことがあります。例えば、ユーザー情報を表示する処理やメッセージを表示する処理などです。このような繰り返し使用する処理を毎回書いていたら、コードが長くなり、管理も大変になってしまいます。
そこで登場するのがメソッドです。メソッドとは、繰り返し使用する処理をひとまとめにして名前を付け、必要なときに呼び出せるようにする仕組みです。料理に例えると、何度も作る料理のレシピをまとめておいて、必要なときに参照するようなものです。
メソッドを使うことで、コードの重複を減らし、プログラムを整理することができます。また、処理に名前を付けることで、プログラムの意図が明確になり、読みやすくなるというメリットもあります。
それでは、実際にメソッドを作成して使ってみましょう。
メソッドの基本的な定義
メソッドを定義するには、def
キーワードを使います。def
は「define(定義する)」の略で、Rubyでメソッドを定義するときの合言葉です。
以下の形式でメソッドを定義します。
def メソッド名 # 処理内容end
具体的な例を見てみましょう。method.rb
というファイルを作成し、次のコードを記述してください。
def say_hello puts "こんにちは"end
このコードでは、say_hello
という名前のメソッドを定義しています。メソッドの中身は、単純に「こんにちは」という文字列を表示する処理です。
メソッド定義の基本的な構造は以下の通りです。
def
キーワードでメソッドの定義を開始します- メソッドの名前を指定します(例:
say_hello
) - メソッド内で実行したい処理を記述します(例:
puts "こんにちは"
) end
キーワードでメソッドの定義を終了します
このように、メソッドは処理をパッケージ化したものと考えることができます。処理に名前を付けて、後から簡単に呼び出せるようにするわけです。
メソッドの呼び出し方
定義したメソッドを使うには、そのメソッド名を記述します。これを**「メソッドを呼び出す」**と言います。
先ほど作成したsay_hello
メソッドを呼び出してみましょう。method.rb
ファイルに以下のコードを追加します。
def say_hello puts "こんにちは"end
say_hello # メソッドの呼び出し
このプログラムを実行すると、次のように表示されます。
こんにちは
メソッド名を書くだけで、メソッド内に定義された処理(今回は「こんにちは」の表示)が実行されました。
メソッドは一度定義すれば、何度でも呼び出すことができます。同じメソッドを複数回呼び出してみましょう。
def say_hello puts "こんにちは"end
say_hello # 1回目の呼び出しsay_hello # 2回目の呼び出しsay_hello # 3回目の呼び出し
実行結果は以下のようになります。
こんにちはこんにちはこんにちは
このように、メソッドを定義しておくと、同じ処理を何度も簡単に実行できるようになります。
メソッドの命名規則
メソッドに名前を付ける際には、以下のルールに従うのが一般的です。
- 英小文字またはアンダースコア(
_
)で始める - 複数の単語を組み合わせる場合は、単語間をアンダースコアで連結する
- メソッドの機能や目的が分かりやすい名前を付ける
例えば、「合計を計算する」というメソッドであればcalculate_total
、「メールを送信する」というメソッドであればsend_email
のような名前が適切です。
このように単語をアンダースコアで連結する命名規則を**「スネークケース(snake_case)」**と呼びます。Rubyでは、メソッド名はスネークケースで書くのが慣習です。
良いメソッド名の例を見てみましょう。
def calculate_total puts "合計を計算します"end
def send_email puts "メールを送信します"end
def create_user_profile puts "ユーザープロフィールを作成します"end
メソッド名は、そのメソッドが何を行うのかが一目で分かるように付けることが重要です。例えば、create_user_profile
というメソッド名からは「ユーザープロフィールを作成する」という機能が想像できます。
良いメソッド名を付けることで、プログラムの可読性(読みやすさ)が向上し、後からコードを見直すときや他の人がコードを読むときに理解しやすくなります。
メソッド内での複数の処理
メソッド内では、複数の処理を記述することができます。例えば、ユーザー情報を表示するメソッドを考えてみましょう。
def show_user_info puts "ユーザー情報を表示します" puts "名前: 山田太郎" puts "年齢: 30歳" puts "趣味: プログラミング"end
show_user_info
このプログラムを実行すると、以下のように表示されます。
ユーザー情報を表示します名前: 山田太郎年齢: 30歳趣味: プログラミング
show_user_info
メソッドには4つのputs
文が含まれていますが、メソッド名を1回呼び出すだけで、これらの処理がすべて実行されます。
このように、メソッド内に複数の処理を記述することで、関連する処理をひとまとめにして管理することができます。例えば、ユーザー情報の表示処理が変更になった場合も、メソッド内の処理だけを修正すれば、そのメソッドを呼び出しているすべての場所に変更が反映されます。
複数のメソッドを定義する
1つのプログラム内に複数のメソッドを定義することもできます。例えば、挨拶をするメソッドとユーザー情報を表示するメソッドを同時に定義してみましょう。
def say_hello puts "こんにちは"end
def show_user_info puts "ユーザー情報を表示します" puts "名前: 山田太郎" puts "年齢: 30歳" puts "趣味: プログラミング"end
say_helloshow_user_info
このプログラムを実行すると、以下のように表示されます。
こんにちはユーザー情報を表示します名前: 山田太郎年齢: 30歳趣味: プログラミング
このように、複数のメソッドを定義して使い分けることで、プログラムを機能ごとに整理することができます。
メソッドを使うメリット
ここで、メソッドを使う主なメリットをおさらいしておきましょう。
コードの再利用性の向上
同じ処理を何度も書く代わりに、一度メソッドとして定義しておけば、必要なときにメソッド名を書くだけで処理を実行できます。これにより、コードの重複を減らし、プログラムをスッキリと書くことができます。
プログラムの可読性の向上
処理に適切な名前を付けることで、プログラムの意図が明確になり、コードを読む人(将来の自分も含めて)が理解しやすくなります。
保守性の向上
処理に変更が必要になった場合、メソッド内の処理だけを修正すれば、そのメソッドを呼び出しているすべての場所に変更が反映されます。これにより、プログラムの保守(メンテナンス)が容易になります。
まとめ
本章では、Rubyのメソッドについて基本的な概念と使い方を学びました。以下の内容をマスターしたことになります。
- メソッドとは、繰り返し使用する処理をひとまとめにして名前を付けたもの
def
キーワードでメソッドを定義し、end
キーワードで終了する- メソッド名を書くことでメソッドを呼び出せる
- メソッド名はスネークケース(単語をアンダースコアで連結)で命名する
- メソッド内には複数の処理を記述できる
- 1つのプログラム内に複数のメソッドを定義できる
メソッドは、プログラムを整理し、効率的に書くための重要な概念です。これからの章でさらにメソッドの使い方を学んでいきましょう。
Starterプランでより詳しく学習
この先のコンテンツを読むにはStarterプラン以上が必要です。より詳細な解説、実践的なサンプルコード、演習問題にアクセスして学習を深めましょう。