我将一个类实例变量指定为数组。
class Red
@items = ["brinjal", "banana"]
puts @items.inspect
def test
puts @items.inspect
end
end
p = Red.new # => prints ["brinjal", "banana"]
p.test # => prints nil
如果我访问该类的实例,则返回nil
。这里发生了什么?
答案 0 :(得分:0)
["brinjal", "banana"]
位于@items
Red
,Class
个对象。
nil
位于@items
p
,Red
个对象。
如果您将所有@
更改为@@
,它都会有效,因为它们始终是类级别的。或者您可以使用类级访问器:
class Red
class << self
attr_accessor :items
end
@items=[]
@items<<"brinjal"
@items<<"banana"
puts items.inspect
def test
puts self.class.items.inspect
end
end