如果我以"ruby x.rb"的形式运行此文件:

class X
end
x = X.new

什么叫"X.new"?

这是一个目标/过程/等等吗?

推荐答案

Ruby中的一切都发生在某个对象的上下文中.顶层的对象称为"main".它基本上是一个对象的实例,具有一个特殊的属性,即在那里定义的任何方法都被添加为对象的实例方法(因此它们在任何地方都可用).

因此,我们可以制作一个完全由以下内容组成的脚本:

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

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

这不是你通常需要关心的事情,但它确实存在.

Ruby相关问答推荐

类似于模块的 attr_accessor 和 attr_reader 的东西?

Rails 3 - 限制资源路径中的操作格式

ActiveRecord::AdapterNotSpecified 数据库配置未指定适配器

需要在Ruby中将数组拆分为指定大小的子数组

如何在新行之间拆分字符串并保留空白行?

Ruby:通过正则表达式过滤数组?

退出(exit)和中止(abort)有什么区别?

Ruby:如何卸载设计(uninstall Devise)?

为什么在Ruby中用空格分隔的两个字符串连接在一起?

如何通过反射获取 Ruby 的 Module 类定义的常量?

我可以在 Ruby 2.x 中要求命名参数吗?

我不明白Ruby本地范围(local scope)

在 Selenium WebDriver 中按 Ctrl + A

如何强制 Ruby 字符串为 n 个字符

Ruby 模板:如何将变量传递到内联 ERB?

处理来自 Net::HTTP 的异常的最佳方法是什么?

使用正则表达式进行 Ruby Electron邮件验证

如何在器上下文中运行 ruby​​ 脚本?

通过多个分隔符拆分字符串

Ruby 类继承:什么是`<<`(双倍小于)?