【问题标题】:main vs initialize in RubyRuby中的主要与初始化
【发布时间】:2011-01-01 21:44:31
【问题描述】:

好的,所以我浏览了我的几本 ruby​​ 书籍并进行了一些谷歌搜索,但无济于事。

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

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

然后使用 Blahblah.new 调用它。

new 不只保留给 初始化?如果不是,那两者有什么区别?

【问题讨论】:

  • initialize 是标准方法,因为它会在新对象上自动调用。也许如果你发布了一个完整的例子,说明你看到 main 使用的地方,我们可以看到你在说什么?
  • 我从未见过main 在 Ruby 中作为一种方法使用或推荐。你可能指的是top-level context object named "main"
  • 我发现了问题所在,这与我对#new 所做的事情的理解有关。我正在研究一个使用 main 函数在主循环中加载场景的游戏引擎。我错过了 $scene.main 部分,它解释了一切。

标签: ruby initialization main


【解决方案1】:

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

方法名main在ruby的标准库中没有特殊意义。因此,除非您从一个类继承,该类以这种方式定义newinitialize,否则main 将被调用,main 不会以任何方式被自动调用。

【讨论】:

    【解决方案2】:

    查看类类


    在您的 Ruby 文档中查找类 Class

    你会发现一个名为new的公共实例方法。

    所有的类都是Class的实例,所以它们都有一个类方法self.new。碰巧,此方法调用allocate 来创建类,然后,如果为新类定义了initialize 实例方法,它会调用它,并转发其(即new 的)参数。

    main 没有什么特别之处。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-10
      • 2012-02-23
      • 1970-01-01
      • 1970-01-01
      • 2012-06-15
      • 2011-03-26
      • 1970-01-01
      • 2013-09-21
      相关资源
      最近更新 更多