好的,所以我浏览了几本我的红宝石书并做了一些谷歌搜索无济于事。
Ruby中的main和initialize有什么区别?我见过使用
的代码class Blahblah
def main
# some logic here
end
# more methods...
end
然后使用Blahblah.new调用它。
不仅仅是新的保留 初始化?如果没有,那么这两者之间有什么区别?
答案 0 :(得分:6)
Class#new
在类上调用alloc
,然后在创建的对象上调用initialize
。它不会调用main
。
方法名main
在ruby的标准库中没有特殊含义。因此,除非您继承自以某种方式定义new
或initialize
的类,否则将调用main
,否则将不会自动调用main
方式。
答案 1 :(得分:0)
在Ruby文档中查找类Class
。
您将找到名为new
的公共实例方法。
所有类都是Class
的实例,因此它们都有类方法self.new
。碰巧,此方法调用allocate
来创建类,然后,如果为新类定义了initialize
实例方法,则调用它并转发它(即new
的论点。
main
没有什么特别之处。