什么是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,它会按照它看到的顺序执行代码。 因此,在调用之前必须包含依赖关系。
所以你的主要是在类或模块定义之外编写的任何过程式代码。