クラスの中にモジュールをインクルードする(Mix-in)

モジュールはクラスの中にインクルードして利用することができます。このような利用の仕方を Mix-in と呼びます。ここでは Ruby でクラスの中にモジュールをインクルードして利用する方法について解説します。

(2022 年 10 月 13 日公開 / 2022 年 10 月 22 日更新)

クラスの中にモジュールをインクルードする

クラスの中にモジュールをインクルードして利用する方法です。例として次のようなモジュールを定義しました。

module CalcModule
  def heikin(x, y)
    return (x + y) / 2
  end
end

クラスの中でモジュールを利用できるようにするにはクラスの中に次のように記述します。

include モジュール名

include のあとにモジュール名を記述してください。インクルードされたモジュールの中で定義されたメソッドは、クラス内のインスタンスメソッドと同じように実行する事ができます。例えば次のようなクラスを作成してみます。

module CalcModule
  def heikin(x, y)
    return (x + y) / 2
  end
end

class Dentaku
  include CalcModule

  def dispValue(x, y)
    num = heikin(x, y)
    puts("平均値は" + num.to_s)
  end
end

このクラスでは CalcModule をインクルードしているので、 CalcModule モジュールの中で定義されているメソッドをクラスの中から呼び出すことができます。

サンプルコード

では実際にサンプルプログラムを作成してみます。

# encoding: UTF-8

module CalcModule
  def heikin(x, y)
    return (x + y) / 2
  end
end

class Dentaku
  include CalcModule

  def dispValue(x, y)
    num = heikin(x, y)
    puts("平均値は" + num.to_s)
  end
end

dentaku = Dentaku.new
dentaku.dispValue(10, 8)

上記を実行すると次のように表示されます。

モジュールを関数のように使う

-- --

Ruby でクラスの中にモジュールをインクルードして利用する方法について解説しました。

( Written by Tatsuo Ikura )

広告
Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。