我创建了一个Test
类,它有一个实例变量@val
,并且是内联定义的。
class Test
@value = 10
def display
puts @value
end
end
t = Test.new
t.display
这没有输出。但是如果我通过初始化方法设置@val
,那么代码就可以工作。
答案 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