什么是Ruby的“主”?

如果我运行这个文件为“ ruby x.rb ”:

 class X end x = X.new 

什么叫“ X.new ”?

它是一个对象/进程/等?

Ruby中的所有东西都出现在某个对象的上下文中。 顶层的对象称为“主”。 它基本上是一个具有特殊属性的Object的实例,所有定义的方法都被添加为Object的实例方法(所以它们在任何地方都可用)。

所以我们可以制作一个完整的脚本:

 puts object_id @a = 'Look, I have instance variables!' puts @a 

它会打印“105640”和“看,我有实例variables!”。

这不是你通常需要关心的事情,但它在那里。

顶级调用者是Object类的一个对象main。

试试这个ruby程序:

 p self p self.class 

这是X类。 您正在调用创build类X的对象的方法“new”。因此,如果您将此文本作为脚本运行,则Ruby:

  • 创build一个新的类X,它是Object的一个子类,并自动地(作为Object的子类)inheritance一些new方法。
  • 设置一个名字x
  • 在新的类X上调用new方法,创build一个X实例对象; x获取对该对象的引用。

这是运行该线路的ruby解释器

 x = X.new 

与许多脚本语言一样,脚本从上到下被解释,而不像大多数编译语言那样有标准的入口点方法。

正如Charlie Martin所说,X.new是对X类的构造函数的调用,它返回一个Xtypes的对象,存储在variablesx中。

根据你的头衔,我认为你正在寻找更多。 Ruby不需要main,它会按照它看到的顺序执行代码。 因此,在调用之前必须包含依赖关系。

所以你的主要是在类或模块定义之外编写的任何过程式代码。