在Ruby中使用main和initialize

时间:2011-01-01 21:44:32

标签: ruby initialization main

好的,所以我浏览了几本我的红宝石书并做了一些谷歌搜索无济于事。

Ruby中的main和initialize有什么区别?我见过使用

的代码
class Blahblah  
  def main  
    # some logic here  
  end  
  # more methods...
end 

然后使用Blahblah.new调用它。

不仅仅是新的保留   初始化?如果没有,那么这两者之间有什么区别?

2 个答案:

答案 0 :(得分:6)

Class#new在类上调用alloc,然后在创建的对象上调用initialize。它不会调用main

方法名main在ruby的标准库中没有特殊含义。因此,除非您继承自以某种方式定义newinitialize的类,否则将调用main,否则将不会自动调用main方式。

答案 1 :(得分:0)

参见班级


在Ruby文档中查找类Class

您将找到名为new的公共实例方法。

所有类都是Class的实例,因此它们都有类方法self.new。碰巧,此方法调用allocate来创建类,然后,如果为新类定义了initialize实例方法,则调用它并转发它(即new的论点。

main没有什么特别之处。