在任何类定义之外创建一个实例变量,比如说@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]
main
是Object
的一个实例,它是一切操作的基础吗? - Anurag