2013-03-03 148 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

相關問題