0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

5/11 本日の勉強記録 Ruby モジュール

Last updated at Posted at 2019-05-11

モジュール
クラスようにメソッドや定数をまとめられるもの。

クラスとの違い
・インスタンスを作ることができない。
・クラスの継承ができない。

モジュールの定義

module モジュール名
 #モジュールの定義(メソッドや定数など)
end

モジュールの用途
関連するメソッドや定数などをまとめてグループ化したいだけの時に手軽に使えて便利。

module Driver
 def self.run #←インスタンス化できないのでselfをつける。
  puts 'Run'
 end
 
 def self.stop
  puts 'Stop'
 end
end

Driver.run
Driver.stop

これを実行すると、
Run Stop
が出力される。


調べたら、モジュールでは多重継承ができるらしい。(Mix-inなら複数のモジュールをインクルードできる)

これがメリットなのか!?

module M1
  def foo
    'method foo'
  end
end

module M2
  def bar
    'method bar'
  end
end

class C
  include M1
  include M2
end

puts C.new.foo
puts C.new.bar
#=> method foo
#=> method bar

クラスではできないことだから使う時が来るのだろうが、どんな時に使うんだろう。多重継承をした方が効率が良さそうってのはなんとなくイメージはできるけど、、、。
頭の隅に入れておこう。

0
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?