gpt4 book ai didi

Ruby 在类外创建实例变量

转载 作者:数据小太阳 更新时间:2023-10-29 06:46:14 24 4
gpt4 key购买 nike

在任何类定义之外的文件中创建实例变量是什么意思,比如 @foo。假设有一个文件 test.rb,下面给出了该文件的全部内容。

# test.rb
@foo = "bar"
puts @foo

它打印"bar",但这是某种包装类中的实例变量吗?

使用两个文件进行测试表明有一个 main 对象,所有内容都包含在其中。这种理解是否正确?

a.rb 的内容

@me = self
@a = "from-a"

b.rb 的内容

require "./a"

@b = "from-b"
puts @me == self # true (self refers to the same object)
puts self.class # Object
puts self.instance_variables # [@a, @b, @me]

最佳答案

在 ruby​​ 中一切都是对象。所以你现在实际上在 main 对象中,它是 Object 的一个实例。

在你的文件中,如果你输入puts self.class,你会看到你在main下运行,类是Object .

即使在 irb 中,例如:

ruby-1.9.2-p136 :001 > self
=> main
ruby-1.9.2-p136 :002 > self.class
=> Object

关于Ruby 在类外创建实例变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5684066/

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