Ruby extend self_Ruby_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > Ruby > Ruby extend self

Ruby extend self

 2010/12/5 13:14:33  fuliang  http://fuliang.javaeye.com  我要评论(0)
  • 摘要:我们想让实例方法同时为类方法,那么可以使用extendself,这个对于普通的类可能没有什么用。但是对于module来说还是很有用的,因为module不可以实例化,module的实例方法通过自身就无法单元测试,所以通过extendself可以作为类方法暴露来测试了:moduleMextendselfdefgreetingputs"hi"endend如果没有extendself,我们就无法使用M.greeting,现在我们可以调用M.greeting了。BTW
  • 标签:Ruby Extend Ten
我们想让实例方法同时为类方法,那么可以使用extend self,这个对于普通的类
可能没有什么用。但是对于module来说还是很有用的,因为module不可以实例化,
module的实例方法通过自身就无法单元测试,所以通过extend self可以作为类方法暴露
来测试了:
module M
  extend self
  def greeting
    puts "hi"
  end
end

如果没有extend self,我们就无法使用M.greeting,
现在我们可以调用M.greeting了。
BTW:
module_function可以把module一个实例方法变成私有的,并复制一份放到
其metaclass中。
发表评论
用户名: 匿名