在Ruby中,将代码放在initialize()方法中而不是直接放在类体中有什么区别?两者似乎都是在打电话时执行的MyClass.new.
显然,initialize()可以接受参数,但这是唯一的区别吗?
class MyClass
  puts 'Hello'
  def initialize(params)
    puts 'World'
  end
end
dem*_*mas 61
尝试创建两个MyClass实例
a = MyClass.new
b = MyClass.new
看到差异:
你好
世界
世界
类主体中的代码只执行一次 - 当ruby加载文件时.每次创建类的新实例时都会执行initialize().
好吧,initialize被调用new,而类体在类定义/加载上得到评估.
另外,尝试在类主体或中设置实例变量initialize.您会注意到后者将属于创建的对象,而第一个属于类实例(因此名称类实例变量).