实例方法无法访问与类定义内联的实例变量

时间:2014-06-04 12:36:01

标签: ruby

我创建了一个Test类,它有一个实例变量@val,并且是内联定义的。

class Test
 @value = 10
 def display
   puts @value
 end
end

t = Test.new
t.display

这没有输出。但是如果我通过初始化方法设置@val,那么代码就可以工作。

1 个答案:

答案 0 :(得分:3)

@val = 10(您在类Test的范围内编写)为您的类Test创建一个实例变量。其中initialize为类Test的实例创建实例变量。

请看下面,确认: -

class Test
  @x = 10
  def initialize
    @x = 12
  end
end

Test.instance_variable_get(:@x) # => 10
Test.new.instance_variable_get(:@x) # => 12