Ruby:变量是ruby中的对象吗?

sha*_*jin 6 ruby variables

我听说红宝石中的一切都是对象.我在一次采访中回答说变量是一个对象,面试官说不.有人知道真相吗?

Ale*_*yne 13

"在红宝石中,一切都是对象"基本上是正确的.

但更准确地说,我会说可以分配给变量或从方法返回的任何值都是一个对象.是一个可变的对象?并不是的.变量只是一个对象的名称(也称为"指针"),它允许您在内存中找到它并对其进行处理.

shajin = Person.new()
Run Code Online (Sandbox Code Playgroud)

在这个片段中,我们有一个变量shajin,它指向一个对象(person类的一个实例).变量只是对象的标识符,但不是对象本身.

我认为这是一个棘手的问题.最终,面向对象是人类理解复杂程序的特征,但计算机本身并不是面向对象的.向下钻取足够多的图层,对象不再以任何语言存在.

因此,或许更公平地说:"在红宝石中,一切重要都是一个对象".


Jör*_*tag 11

为什么不直接去源?Ruby语言规范不可能更明确和明显(我强调):

6.2变量

6.2.1一般说明

变量由名称表示,并引用一个对象,称为变量的值. 变量本身不是对象.

  • 你能给一个文字链接吗? (2认同)