Ruby中的"主要"是什么?

lor*_*orz 44 ruby program-entry-point

如果我将此文件作为" ruby x.rb" 运行:

class X
end
x = X.new
Run Code Online (Sandbox Code Playgroud)

什么叫" X.new"?

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

Chu*_*uck 50

Ruby中的所有内容都出现在某个对象的上下文中.顶层的对象称为"main".它基本上是具有特殊属性的Object实例,其中定义的任何方法都被添加为Object的实例方法(因此它们随处可用).

所以我们可以制作一个完全由以下内容组成

puts object_id
@a = 'Look, I have instance variables!'
puts @a
Run Code Online (Sandbox Code Playgroud)

它将打印"105640"和"看,我有实例变量!".

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

  • 注意:此答案略有过时.`main`命名空间中定义的方法现在"神奇地"添加到`BasicObject`,它从Ruby 1.9开始子类化`Object`. (2认同)

Igo*_*kon 13

顶级调用者是一个对象main,它是Object类.

试试这个ruby程序:

p self
p self.class
Run Code Online (Sandbox Code Playgroud)