Ruby 的include和extend用法_Ruby_编程开发_程序员俱乐部

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

Ruby 的include和extend用法

 2013/7/29 14:09:24  lanrion  程序员俱乐部  我要评论(0)
  • 摘要:Ruby使用include和extend来对class做补充。假设有一个module:modulePersondefabout_meputs"Thisisaboutme."endend1,include<modulename>1.1使模块的方法变成类的实例方法:classStudentincludePersonendstudent=Student.newstudent.about_me#puts"Thisisaboutme."Student.about_me#没有定义此方法
  • 标签:用法 Ruby Extend Ten

Ruby使用include和extend来对class做补充。

假设有一个module:

module Person
  def about_me
     puts "This is about me."
  end
end

?

1, include <module name>

? 1.1 使模块的方法变成类的实例方法:

class Student
  include Person
end
student = Student.new
student.about_me # puts "This is about me."
Student.about_me # 没有定义此方法,抛出异常

? ?1.2 如何要让 Student 可以直接调用include module的方法,可以在?def self.included(c) ... end 实现,比如

?

module Person
  def about_me
     puts "This is about me."
  end
  def self.included(c)
   def c.call_me
     puts "This is class me"
   end
  end
end

? ?Student.call_me即可直接调用。

?

2,?extend?<module name>是直接变成类的类方法 ,相当于class << self.?

?

参考资料:?http://www.railstips.org/blog/archives/2009/05/15/include-vs-extend-in-ruby

上一篇: 首个在 “黑帽子”大会演讲的中国人 下一篇: 没有下一篇了!
发表评论
用户名: 匿名