はじめてのRuby!モジュール(module)の使い方を解説!

今回はRubyのモジュール(module)について解説していきたいと思います!

モジュールは他の言語にないことも多く、少し特殊な概念になります。

そのため、モジュールを学ぶことは他言語経験者でも少し難しいものになります。

そこで今回は、そんなモジュールを体系的に学ぶために

【基礎】モジュールとは
【基礎】モジュールを使用する理由
【基礎】モジュールの使い方
【発展】モジュールとクラスの違い

という章に分けて解説していきたいと思います!

それでは行ってみましょう!

モジュールとは

shutterstock_229910752
モジュール(module)を一言で表すと「メソッドを格納できるもの」です。

難しく考えずに「メソッドを入れるための箱なんだな」という意識で大丈夫です。

モジュールの書き方:

モジュールは 「module」から「end」を一つの塊として定義できます。

moduleの後にはモジュール名を与えます。

モジュールの定義方法がわかったところで、なぜモジュールを使用するのか解説していきます。

少し難しい話も入るので、「とりあえずモジュールの使い方が知りたい!」という人は飛ばして行っちゃてください。

単一継承

Rubyは単一継承と呼ばれる言語設計になっています。

要はクラスを一つしか継承できないという設計です。

そのため、クラスと合わせて、モジュールを使用するすることで、擬似的に多重継承を行っているようにコードを書くことができます。

処理の種類ごとに分離することができる

例えば「name」メソッドを同じプログラムで二つ用意したくなったとします。

普通に書くと、同じメソッド名のメソッドは定義できません。

しかし以下のようにモジュールで名前空間を分けることで、二つのnameメソッドを定義することができます。

モジュールを使用する

それでは実際にモジュールを使用していきましょう!

サンプルプログラム:

前述したようにモジュールの始まりである「module」からモジュールの終わりの「end」の中に処理を記述すればOKです!

また、より具体的な使い方についても見ていきましょう。

モジュール名を指定して実行するには、以下のように記述します。

サンプルプログラム:

実行結果:

このサンプルではモジュールの中に最小値と最大値を求めるメソッドを定義しています。

モジュール内のメソッドを実行するには、

「module_function :メソッド名」

のように、module_functionでモジュール名を指定する必要があります。

また、モジュールを実行するには「estModule.Min(1, 5)」のように、

「モジュール名.メソッド名」

と指定する必要があります。

モジュールとクラスの違い

モジュールとクラスはよく混同してしまいがちですが、明確な違いがあります。

モジュールとクラスについての詳細な解説については以下の記事で詳しく解説しています!

まとめ

ここでは、Rubyのモジュールについて、

  • モジュールとは
  • モジュールを使用する理由
  • モジュールの使い方
  • モジュールとクラスの違い

について解説しました。

モジュールはRubyでコードをきれいに書くためや、スマートなクラスを設計するために必須となる知識です。

しっかりと覚えておくようにしましょう。

Rubyカリキュラム無料公開中!

この記事はRuby入門完全攻略ガイド【基礎学習/アプリ開発/仕事獲得】の一部になります。このカリキュラムは、プログラミング入門者が、基礎学習からアプリ開発、さらには仕事獲得まで体系的に学べる内容となっています。

Ruby学習に必要な情報を一つにまとめていますので効率よくRubyを学ぶことが出来ます。この機会に是非活用していただければと思います。

【Ruby入門ガイド】アプリ開発で知っておくべき知識を総ざらい
更新日 : 2018年11月23日

Rubyを最短で習得したい方へ

近年では様々なWEBサービスが流通するようになりました。

WEBサービスの普及が進むにつれて、それらを素早く開発するのに長けたRubyの人気は今後さらに増し、Rubyエンジニアの需要も自ずと増えることは間違いなしでしょう。

元々ITリテラシーの高い方や他言語を習得している方であれば、独学でRubyを習得することが可能です。

ただし、プログラミング学習をしている方の多くは

「自分に合った教材が見つけられずに挫折してしまった」
「勉強のための勉強になってしまい、ゴールが見えない」
「情報が少なくどう調べればいいかわからない」
「エラーを解決するのに何日もかかってしまう」

このような悩みを抱えたまま挫折してしまうのが現実となっています。

  • もう挫折したくない
  • 本業と両立しながら、好きな時間で自分のペースで勉強を続けていきたい
  • 自分だけのカリキュラムで効率的に勉強したい
  • WEBアプリケーション開発までしっかりサポートして欲しい
そんな方はお気軽に侍エンジニア塾までご相談ください。

お一人お一人に専属のインストラクターがつくので、初心者の方がつまづきがちな、「CookPad」、「Wantedly」、「食べログ」のようなWEBアプリケーション開発方法もスムーズに学習することできます。

実際にオリジナルWEBアプリを開発し、成果物として認められて仕事獲得に成功した塾生は数多くいます。

このように、オリジナルアプリ開発から仕事獲得まで徹底的にサポートすることでプログラミング初心者の方でも安心して基礎学習に取り組むことができます。

まずは『無料体験レッスン』で、弊社のコンサルタントと一緒にあなた専用の学習方法やカリキュラムを考えてみませんか?

Rubyならではの学習方法や、現役フリーランスRubyエンジニアから貴重なアドバイスを受けることができます。

詳しくは下の画像から弊社サービス内容をご確認ください。

ruby_a2
LINEで送る
Pocket

書いた人

ヤマシタ

フリーランスエンジニア。ITに関わるさまざまなコンテンツの企画・制作も行っています。
ITに関してはノウハウ系、ライフハック系、トレンド系など、今まで200本以上の執筆経験があります

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説