我是 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
为什么上面的代码允许在静态方法:Test::init 中初始化一个成员变量:@member?我的理解是 @member 的使用会引发错误,因为它没有绑定(bind)到类 Test 的任何实例。但不会抛出任何错误。
最佳答案
虽然类是一个对象的实例,并且可以像任何其他对象一样拥有实例变量:
>> Fixnum.class
=> Class
Fixnum
该类是 Class
的实例!
关于ruby - ruby 中的静态/实例变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11088222/