9
在任何类定义之外的文件中创建实例变量(如@foo
)意味着什么。假设有一个文件test.rb,文件的全部内容在下面给出。Ruby在类之外创建实例变量
# 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 2011-04-16 05:47:32