如题,我的rb文件里没有定义类,也没有实例,但可以定义实例属性,如:
@t = 9 puts @t
这个@t是哪个实例的属性?实例属性可以脱离实例吗?谢谢
如题,我的rb文件里没有定义类,也没有实例,但可以定义实例属性,如:
@t = 9 puts @t
这个@t是哪个实例的属性?实例属性可以脱离实例吗?谢谢
Ruby里即便是顶层代码也是在某个对象内部的,这个对象叫做“main”。
[code="ruby"]class Foo
def initialize
@a = 1
end
end
puts Foo.new.instance_variables #=> ["@a"][/code]
这样可以看到Foo类的实例里有@a成员变量。那么对顶层代码也做类似的查询:
[code="ruby"]puts self.instance_variables #=> []
@b = 2
puts self.instance_variables #=> ["@b"]
puts self.class #=> Object[/code]