在Ruby中,将代码放入initialize()方法而不是直接放入类主体有什么区别?两者都似乎在调用MyClass.new时执行。

显然,initialize()可以接受参数,但这是唯一的区别吗?

class MyClass
  puts 'Hello'

  def initialize(params)
    puts 'World'
  end
end

最佳答案

尝试创建MyClass的两个实例

a = MyClass.new
b = MyClass.new
看看区别:

类主体中的代码仅执行一次-当ruby加载文件时。每当您创建类的新实例时,都会执行initialize()。

关于ruby - Ruby:initialize()vs类主体?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6043618/

10-11 10:36