首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > Ruby Rails >

ruby中include与extend的差异

2012-10-24 
ruby中include与extend的区别在Rspec的源码中,经常可以看见这样的代码:KlassA extend ModAKlassA include

ruby中include与extend的区别
在Rspec的源码中,经常可以看见这样的代码:

KlassA extend ModAKlassA include ModB

那么include和extend究竟有什么区别的?

简而言之,引用如下:

module A def klass_method puts 'klass method' end def ins_method puts 'instance method' endendclass BendB.class_eval do include AendB.new.ins_method # 'should puts instance method'#B.klass_method # 'not define'B.class_eval do extend AendB.klass_method # 'klass method'B.ins_method # also as class method

需要注意的是,如果o.extend Mod的话,那么o将会获得Mod的方法作为其instance method,但是与o同属于1个类的对象则没有Mod的方法

热点排行