カテゴリ: Ruby 更新日: 2026/04/08

Rubyのメソッド定義を完全ガイド!defから戻り値まで初心者向けに徹底解説

メソッド定義の基本:def〜end・戻り値・暗黙のreturnを理解する
メソッド定義の基本:def〜end・戻り値・暗黙のreturnを理解する

先生と生徒の会話形式で理解しよう

生徒

「Rubyで何度も使う同じ処理を、一つにまとめる方法はありますか?」

先生

「はい、それこそが『メソッド』の役割です。defを使って処理に名前を付けておけば、いつでも呼び出せるようになりますよ。」

生徒

「メソッドを作るときに『戻り値』という言葉を聞いたのですが、これはどういう意味ですか?」

先生

「良い点に気づきましたね!戻り値は、メソッドが仕事を終えた後に返してくれる『お土産』のようなものです。Ruby特有の『暗黙のreturn』についても一緒に学んでいきましょう!」

1. メソッドとは?何度も使う処理を一つにまとめる魔法の箱

1. メソッドとは?何度も使う処理を一つにまとめる魔法の箱
1. メソッドとは?何度も使う処理を一つにまとめる魔法の箱

プログラミングをしていると、「挨拶を表示する」「合計金額を計算する」といった同じ作業を何度も繰り返す場面が出てきます。その度に同じコードを書くのは大変ですし、もし内容を少し変えたいと思ったら、すべての場所を書き直さなければなりません。

そこで登場するのがメソッドです。メソッドとは、複数の命令を一つの「塊(かたまり)」としてまとめ、それに好きな名前を付けたものです。

パソコンを触ったことがない方でも、「電子レンジ」をイメージすれば簡単です。電子レンジの中には「温める」という複雑な仕組みが隠れていますが、私たちは「あたためボタン」を押すだけでその機能を使えますよね。この「あたためボタン」が、プログラミングにおけるメソッドの名前なのです。

Rubyの文法を基礎からしっかり固めたい人や、 現場で役立つ「テスト駆動開発」の考え方まで身につけたい人には、 評価の高いこの一冊がおすすめです。

プロを目指す人のためのRuby入門をAmazonで見る

※ Amazon広告リンク

2. メソッド定義の基本!defとendの書き方ルール

2. メソッド定義の基本!defとendの書き方ルール
2. メソッド定義の基本!defとendの書き方ルール

Rubyでメソッドを作ることを「メソッドを定義(ていぎ)する」と言います。定義するには、def(デフ)とend(エンド)という言葉を使います。

defは英語の「define(定義する)」の略です。書き方は非常にシンプルで、def メソッド名で始めて、最後にendで閉じます。その間に、実行したい処理を書きます。


# 挨拶をするメソッドを定義する
def say_hello
  puts "みなさん、こんにちは!"
  puts "Rubyの勉強を始めましょう。"
end

# メソッドを呼び出す(実行する)
say_hello

このコードを書くだけで、say_helloという名前を呼ぶたびに、二行の挨拶が表示されるようになります。

3. 戻り値とは?仕事を終えたメソッドが返してくれる結果

3. 戻り値とは?仕事を終えたメソッドが返してくれる結果
3. 戻り値とは?仕事を終えたメソッドが返してくれる結果

メソッドには「ただ命令を実行するだけのもの」と「計算した結果を返してくれるもの」の二種類があります。この、メソッドが最後に返してくれる結果のことを戻り値(もどりち)、または返り値(かえりち)と言います。

日常生活で例えると、あなたが誰かにおつかいを頼んだとします。「パンを買ってきて」と頼んで、相手がパンを持って帰ってきたら、その「パン」が戻り値です。

プログラムでは、メソッドの中で計算した数字や、加工した文字を戻り値として受け取り、それを別の場所で使ったり変数に保存したりします。

4. Rubyの大きな特徴!暗黙のreturnを理解しよう

4. Rubyの大きな特徴!暗黙のreturnを理解しよう
4. Rubyの大きな特徴!暗黙のreturnを理解しよう

他のプログラミング言語では、戻り値を指定するときに必ず「return(リターン)」という言葉を書く必要があります。しかし、Rubyには暗黙のreturn(あんもくのリターン)という便利な仕組みがあります。

これは、「メソッドの中で一番最後に評価(計算)された値が、自動的に戻り値になる」というルールです。つまり、わざわざ「これを返します!」と書かなくても、Rubyが空気を読んで最後の結果を届けてくれるのです。


# 二つの数字を足し算するメソッド
def add_numbers
  result = 10 + 20
  result # これが最後の一行なので、自動的に戻り値になる
end

# メソッドの戻り値を変数に入れる
total = add_numbers
puts "合計は #{total} です"

合計は 30 です

5. returnをあえて使う場面!処理を途中で切り上げる方法

5. returnをあえて使う場面!処理を途中で切り上げる方法
5. returnをあえて使う場面!処理を途中で切り上げる方法

「暗黙のreturnがあるなら、言葉としてのreturnは使わないの?」と思うかもしれません。実は、returnを直接書くこともあります。それは、「処理を途中で終わりにして、すぐに結果を返したいとき」です。

例えば、ある条件に当てはまったら、それ以降の難しい計算はせずにすぐ答えを出したい場合などに使います。


def check_lucky_number
  number = 7
  
  if number == 7
    return "ラッキーセブンです!" # ここでメソッドが終了する
  end

  "普通の数字です" # 上のreturnが動くと、この行は無視される
end

puts check_lucky_number

このように、returnを使うと、その瞬間にメソッドの実行が終了し、呼び出した場所へ戻ります。

6. メソッド名に使える文字と命名のコツ

6. メソッド名に使える文字と命名のコツ
6. メソッド名に使える文字と命名のコツ

メソッドには自由に名前を付けることができますが、いくつかルールとマナーがあります。

  • 基本は小文字: calculate_priceのように、小文字のアルファベットを使います。
  • スネークケース: 単語の間は _(アンダースコア)で繋ぎます。蛇のように見えるのでそう呼ばれます。
  • 役割がわかる名前に: 「do_it」よりも「print_invoice」のように、何をするメソッドか一目でわかる名前が好まれます。

また、Rubyではメソッド名の最後に?!を付けることもできます。is_empty?のように「?」を付けると「~ですか?」と尋ねる(真偽値を返す)メソッドという意味になり、非常に読みやすくなります。

7. 戻り値がないメソッド?nilの正体

7. 戻り値がないメソッド?nilの正体
7. 戻り値がないメソッド?nilの正体

すべてのメソッドには必ず戻り値がありますが、中には「中身がない値」を返すことがあります。それがnil(ニル)です。

例えば、putsで文字を表示するだけのメソッドを作った場合、表示自体は行われますが、メソッドとしての「お土産(戻り値)」は空っぽのnilになります。


def just_print
  puts "表示するだけ"
end

result = just_print
p result # resultの中身を確認する

表示するだけ
nil

pというのは、中身を詳しく見るための命令です。nilが表示されたことで、このメソッドには実質的な戻り値がなかったことがわかります。

8. 変数のスコープ!メソッドの中と外の境界線

8. 変数のスコープ!メソッドの中と外の境界線
8. 変数のスコープ!メソッドの中と外の境界線

メソッドを理解する上で非常に重要なのがスコープ(範囲)です。

メソッドの中で作った変数は、そのメソッドの中でしか使えません。逆に、メソッドの外で作った変数を勝手にメソッドの中で使うこともできません。

これは「プライバシーを守る壁」のようなものです。メソッドごとに変数を独立させることで、他の場所で同じ名前の変数を使っていても、データが混ざって壊れてしまうのを防いでいます。この独立性の高さが、大規模なプログラムを作るときにとても役立ちます。

9. 実務で役立つ!メソッドを細かく分けるメリット

9. 実務で役立つ!メソッドを細かく分けるメリット
9. 実務で役立つ!メソッドを細かく分けるメリット

一つのメソッドに何百行も処理を書くのは、あまり良い書き方ではありません。プロのプログラマーは、一つのメソッドには「一つの役割」だけを持たせるように、細かく分割して作ります。

細かく分けることで、以下のメリットがあります。

  • どこが間違っているか見つけやすい: 壊れた部品だけを特定できます。
  • 使い回しができる: 同じ部品を他の場所でも再利用できます。
  • コードが物語のように読める: 名前が付いているので、処理の流れが追いやすくなります。

10. メソッドを使いこなしてRubyをもっと楽しく!

10. メソッドを使いこなしてRubyをもっと楽しく!
10. メソッドを使いこなしてRubyをもっと楽しく!

パソコンを触ったことがない方にとって、最初は「なぜわざわざ名前を付けてまとめるの?」と不思議に思うかもしれません。

でも、少しずつコードが長くなってくると、この「メソッド」という仕組みのありがたみが分かってきます。自分だけの便利な道具箱を作るような感覚で、色々な処理をメソッドにまとめてみてください。

Rubyの「暗黙のreturn」に慣れてくると、コードが驚くほどスッキリと美しく書けるようになります。まずは身近な計算や、決まった挨拶を表示することから始めて、Rubyという魔法の杖を自由に操れるようになりましょう!

関連記事:

関連記事なし

カテゴリの一覧へ
新着記事
New1
データベース
SQLのLIMITとOFFSETを徹底解説!初心者でもわかるデータ取得の範囲指定方法
New2
Ruby
RubyのHash入門を完全ガイド!初心者でもわかるキーと値の基本操作
New3
Rails
RailsモデルとActive Record基礎|STIとポリモーフィック関連の選び方・落とし穴・代替設計
New4
データベース
SQL ORDER BY完全ガイド!データの並び替えを初心者向けに徹底解説
人気記事
No.1
Java&Spring記事人気No1
Ruby
WindowsでRubyをインストールする方法!RubyInstallerとMSYS2を使った完全ガイド
No.2
Java&Spring記事人気No2
データベース
SQLで複数テーブルを結合する方法を徹底解説!初心者でも図解でわかるJOINと集計の基本
No.3
Java&Spring記事人気No3
Rails
Railsのimportmap入門|Node不要でJavaScriptを使う方法と落とし穴をやさしく解説
No.4
Java&Spring記事人気No4
データベース
PostgreSQLが遅い原因を解決!初心者向けデータベースチューニングと高速化の基本
No.5
Java&Spring記事人気No5
Ruby
Rubyの論理演算子をマスター!and/orと&&/||の違いと優先順位の罠
No.6
Java&Spring記事人気No6
Rails
Railsテスト入門:FactoryBotの使い方を完全解説!trait・association・sequenceでテストデータ最適化
No.7
Java&Spring記事人気No7
Ruby
Rubyの始め方ガイド:インストールから最初のHello Worldまで(Windows/Mac/Linux)
No.8
Java&Spring記事人気No8
データベース
PostgreSQLのCTE(WITH句)完全解説!複雑なSQLを整理して読みやすくする書き方