ruby中的静态/实例变量

时间:2012-06-18 17:46:06

标签: ruby

我是一个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的实例。但是不会抛出任何错误。

2 个答案:

答案 0 :(得分:3)

对象的一个​​实例,并且可以像任何其他对象一样拥有实例变量:

>> Fixnum.class
=> Class

Fixnum该类 Class的一个实例!

答案 1 :(得分:1)