1 理解allocate
在一些特殊的环境中,你可能需要不调用它的构造器(也就是initialize)来创建一个对象。也就是说 你想要创建一个空的对象.例如,假设你有一个对象,它的状态完全的由它的存取方法所确定,因此如果 你不是真的想要一个另外的状态的话,调用new方法是没必要的.此时我们能allocate方法.
Ruby代码
class Person attr_accessor :name, :age, :phone def initialize(n,a,p) @name, @age, @phone = n, a, p end def test p "aaa" end end p1 = Person.new("John Smith",29,"555-1234") p2 = Person.allocate p p1.age # 29 p p2.age # nil p2.test
2 Modules
在ruby中使用Modules有两个原因.第一个原因是namespace 的管理,当我们在module中存储常量和方法 时,我们将会有更少的命名冲突.调用module中的方法和类方法很类似,就是模块名+方法名.因此我们看 到File.ctime 和FileTest.exist?, 时,我们从表面无法知道 File和FileTest是模块还是类.
第二个原因更有趣,我们能使用模块进行mixin.关于什么是mixin,就不说了。
以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索对象
, 模块
, 方法
, 构造器
, 一个
原因
the ruby way 3rd pdf、the ruby way、the ruby way pdf、learn ruby hard way、the ruby way中文版,以便于您获取更多的相关知识。