gpt4 book ai didi

ruby - 在 Ruby 中,变量名不是对象。为什么?

转载 作者:太空宇宙 更新时间:2023-11-03 17:58:25 25 4
gpt4 key购买 nike

这出现在 10 Things Every Java Programmer Should Know About Ruby 的幻灯片 6 中讲话。

现在,我回顾了一些答案,普遍的共识是任何有值(value)的东西,而不仅仅是指针,都是一个对象。我对此感到困惑。如果 a = 1a 将与 1 共享方法,实际上它们将具有相同的 object_id。为什么说“a 是一个对象”不准确?

最佳答案

幻灯片所说的是正确的:变量不是对象。然而,这里的第二个陈述——“任何有值(value)的东西,不仅仅是指针,都是一个对象”——在 Ruby 的上下文中甚至没有意义,它没有区别于“有值(value)的东西/的东西”的“纯粹的指针”对象”。

事实是,变量a 不与对象1 共享方法。它肯定与 1 不同,否则如果您稍后编写 a = 2,您将完全抹掉数字 1!变量只是一个保存对对象 1 的引用的地方。您不能像与对象一样与这个地方对话——例如,正如您所指出的,变量没有不同的 object_id。您可以对变量做的唯一事情就是与它引用的对象交谈,并使用对不同对象的引用重新分配它。变量本身不是对象,它只是一个存储对象引用的地方。

关于ruby - 在 Ruby 中,变量名不是对象。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9382491/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com