我是一个Ruby新手。有一个关于静态和实例变量的基本问题。
class Test
def self.init
@@var_static = 1
@member = 2
end
def self.print
puts "@@var_static: #{@@var_static}"
puts "@member: #{@member}"
end
end
Test.init
Test.print
为什么上面的代码允许初始化成员变量:@member,在静态方法中:Test :: init?我的理解是@member的使用会抛出一个错误,因为它没有绑定任何类Test的实例。但是不会抛出任何错误。
答案 0 :(得分:3)
类是对象的一个实例,并且可以像任何其他对象一样拥有实例变量:
>> Fixnum.class
=> Class
Fixnum
该类是 Class
的一个实例!
答案 1 :(得分:1)