我希望有人可以阐明我在下面收到的错误。我在父类中定义了一个实例变量,Node
并希望在子类中访问和修改它AddSubNode
,每当我尝试访问时,都会@code
收到此错误:
'code': undefined method `<<' for nil:NilClass (NoMethodError)
我一定是误解了 Ruby 的继承模型,但我认为我可以做到这一点。
class Node
attr_accessor :code
def initialize
@code = []
end
end
class AddSubNode < Node
def initialize op, l, r
@op = op
@l = l
@r = r
end
def code
@code << 1 # error: `code': undefined method `<<' for nil:NilClass (NoMethodError)
@code
end
def to_s
"#{@l} #{@op} #{@right}"
end
end