私は遊んでいてinclude
、extend
今日、私がよく理解していない何かを見つけました。
module Dragon
def roar
'roar'
end
end
module Knight
include Dragon
def fight
'fight'
end
end
class Other
extend Knight
end
puts Other.roar # -> 'roar'
roar
のクラスメソッドとして利用できるのはなぜOther
ですか?メソッドをクラスメソッドとして利用できるようextend Knight
にしました。順番になりますが、それによってメソッドがメソッドとして使用できるようになります。しかし、ここで起こっている奇妙なことはそれだけではありません。モジュールのインスタンスを作成することもできないのに、なぜモジュールで作成できるのでしょうか。Knight's
Knight
include Dragon
Dragon
instance
include