icon
icon

Rubyのmodule(モジュール)の使い方を現役エンジニアが解説【初心者向け】

初心者向けにRubyのmodule(モジュール)の使い方について現役エンジニアが解説しています。モジュールはクラスと同じように定数やメソッドをまとめることが出来る他、gemをまとめて名前空間とすることが出来ます。複数のクラスなどを1つのモジュール名で扱うことが出来ます。

テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日  調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名  調査手法:インターネット調査

Rubyのmodule(モジュール)の使い方について解説します。

 
そもそもRubyについてよく分からないという方は、Rubyとは何なのか解説した記事を読むとさらに理解が深まります。

なお本記事は、TechAcademyのオンラインブートキャンプRuby講座の内容をもとに紹介しています。

 

田島悠介

今回は、Rubyに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

Rubyのmodule(モジュール)の使い方について詳しく説明していくね!

大石ゆかり

お願いします!

 

module(モジュール)とは

モジュールはRubyの特徴的な機能の1つです。
クラスがデータと処理をひとつにまとめたものであるのに対し、モジュールは処理のみをまとめたものになります。

この機能によってより柔軟にコードを書けます。

 

module(モジュール)とクラスの相違

モジュールとクラスは主に以下の2点で違います。

  • モジュールはインスタンスを持てない
  • モジュールは継承できない

様々な目的で使用されますが、Mix-inで機能を提供する、名前空間(メソッドやクラス、定数の名前を管理する単位)を提供するといった目的で使用されます。

 

[PR] Rubyのプログラミングで挫折しない学習方法を動画で公開中

module(モジュール)の使い方

今回は代表的な使い方であるMix-inについて紹介します。

Mix-inは、似たような機能を持っているが違う種類のクラスに対して共有のメソッドを提供したい場合などに使用します。

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

    # モジュール名は大文字で書く
    module MyModule
        # 共有したい処理
    end

    class MyClass1
        # includeでMyModuleの処理が使える
        include MyModule
        # 固有の処理
    end

    class MyClass2
        include MyModule
        # 固有の処理
    end

 

実際に書いてみよう

それでは実際に書いてみましょう。
以下のようにモジュールを書いて、クラスにMix-inしてみましょう。
 

    module CalculateMod

        def add(x,y)
            x + y
        end

    end


    class Test1
        include CalculateMod

        def multi(x,y)
            x * y
        end
    end

    class Test2
        include CalculateMod

        def div(x,y)
            x / y
        end
    end

    test1 = Test1.new
    test2 = Test2.new
    puts test1.add(1,2)
    puts test2.add(10,1)
    puts test1.multi(2,3)
    puts test2.div(10,2)

 

実行結果は以下の通りです。

3
11
6
5

以上でモジュールの解説を終わります。

モジュールはコードを読みやすくして、再利用可能にしてくれます。
 

監修してくれたメンター

メンター金成さん

フリーランスエンジニア。
Railsの案件を中心に、様々なアプリケーションを開発してます。

使える言語は、ruby python go 。最近はgoにハマってます。

 

大石ゆかり

内容分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

 

TechAcademyでは、初心者でもRuby on Railsを使ったプログラミングを習得できるオンラインブートキャンプRuby講座を開催しています。

挫折しない学習方法を知れる説明動画や、現役エンジニアとのビデオ通話とチャットサポート、学習用カリキュラムを体験できる無料体験も実施しているので、ぜひ参加してみてください。