2013-03-03 150 views
3

Ruby的新功能。接收错误:未定义的方法`+'为零:NilClass(NoMethodError)Ruby未定义方法`+'为零:NilClass(NoMethodError)

我不明白为什么我收到一个错误,为增量值这样一个简单的任务。不过,也许这个错误是由别的东西引起的。

原因是什么?

class LinkedList 
    class Node 
    attr_accessor :data, :nextNode 

    def initialize(data = nil, nextNode = nil) 
     @data = data 
     @nextNode = nextNode 
    end 
    end 

#member variables 
    @head = nil 
    @size = 0 

    def initialize 
    @head = Node.new() 
    end 

    def add(val) 
    curr = @head 
    while curr.nextNode != nil 
     curr = curr.nextNode 
    end 
    curr.nextNode = Node.new(val) 
    @size += 1 #<<<-------------------------------------ERROR LINE---------- 
    end 
end 

list = LinkedList.new() 
list.add(0) 

回答

8

移动声明@size到initialize方法:

def initialize(data = nil, nextNode = nil) 
    @data = data 
    @nextNode = nextNode 
    @size = 0 
end 
+0

我想提的是,其中* @尺寸*和* @ *头被放置在原代码,他们不是在对象的范围,但在该范围内。 – Digikata 2013-03-03 06:04:37

相关问题