Written by Kasumi

Rubyで定数やメソッドをまとめてmodule化する方法

Rubyで共通の箇所で使う定数やメソッドをまとめて格納・パーツ化する方法を知りたい。

本記事ではmoduleを使ってこの様な悩みを解決。

moduleの概要、実装方法について解説します。

moduleとは?

moduleとは定数やメソッドをまとめる機能の事を言います。

moduleで定義した定数やメソッドをクラスなどで共有する事ができます。

moduleとclassの違い

moduleではclassと違い、継承(親クラスを継承して子クラスを作るなど)インスタンス化(メソッドを実体化)する事が出来ません。

ただしMix-in機能(モジュールを取り込む)を使えば、クラスなどを経由してmoduleで定義したメソッドを呼び出す事ができます。

moduleの使い方

#モジュールを定義
module Greeting
  def introduction(message)
    puts "#{message}。#{@name}です。"
  end
end


# モジュールをクラスに組み込む
class Name
  #モジュールを組み込む
  include Greeting
  def initialize(name)
      @name = name
  end
end

# インスタンス化
hello = Name.new("カスミ")
hello.introduction("こんにちは")

moduleを使ったコード例です。

定義したmoduleをクラスに共有。

クラスをインスタンス化してmoduleのメソッドを実行してます。

moduleの使い方は以下の通りです。

module モジュール名
処理
end

モジュール名の頭文字は大文字にします。

モジュールにまとめたい定数・メソッドの処理を定義。

endで閉じます。

モジュールを読み込む際はincludeを使います。

include モジュール名

以上でモジュールで定義したメソッドを呼び出す事に成功しました。

まとめ

Rubyのmoduleを使って、定数やメソッドをまとめて格納。格納したメソッドを呼び出す方法について紹介しました。

以上で解説を終わります。

目次

関連記事

Ruby

Rubyでクラスを定義・メソッドを呼び出す方法

2022.08.15
930
Ruby

【Ruby】配列要素を追加・上書き・削除する方法

2022.07.25
2226
Ruby

Rubyで同じ要素の数の配列を作成する方法【mapメソッドを使おう】

2022.08.11
772
Ruby

Rubyで変数の種類とそれぞれの有効範囲(スコープ)について

2022.08.19
1381