在 Ruby 中,当创建一个新类时,我们将这样定义构造方法:
class Thing
def initialize
do_stuff
end
end
但是,当实际创建对象的实例时,我们发现自己不是initialize在调用实例,而是new在调用类。
既然如此,我们为什么不改为定义::new呢?
class Thing
def self.new
do_stuff
end
end
::new场景中是否有一些initalize没有定义的东西?这两者有什么不同吗?定义会::new起作用吗?还是只是def initialize比 短(不)def self.new?
我认为这种差异必须有充分的理由。