前へ | 次へ |
●モジュールとは
クラスは実体(データ)と振る舞い(処理)を持つが、
モジュールは処理の部分だけを持つ。
(クラスとの違い)
・モジュールはインスタンスを持つことができない
・モジュールは継承できない
●モジュールの使い方
・名前空間の提供
メソッドや定数、クラスの名前がぶつからないようにする
ために利用
モジュールの提供するメソッドは「モジュール名::メソッド名」と
いう形式で参照する
(例)
--------------------------------------------------
# ファイルの存在を調べる
p FileTest::exist?("/usr/bin/ruby") #=> true
# ファイルサイズ
p FileTest::size("/usr/bin/ruby") #=> 1374694
--------------------------------------------------
モジュール内で定義したメソッドや定数と同名のものが
定義されていないときは、モジュール名の指定を省略する
ことができる(includeを利用)
(例)
------------------------------------------------------
# 円周率(定数)
p Math::PI
# 2の平方根
p Math::sqrt(2)
include Math # Mathモジュールをインクルードする
p PI
p sqrt(2)
------------------------------------------------------
・Mix-inによる機能の提供
モジュールをクラスに混ぜ合わせることを「Mix-in」という
(例)
---------------------------------------
module MyModule
# 共通して提供したいメソッドなど
end
class MyClass
include MyModule
# MyClassに固有のメソッドなど
end
---------------------------------------