用于nil的Ruby未定义方法`+':NilClass(NoMethodError)

Kai*_*ran 3 ruby numbers add

Ruby的新手.接收错误:未定义的方法`+'表示nil: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)
Run Code Online (Sandbox Code Playgroud)

Ric*_*own 8

将@size的声明移动到initialize方法中:

def initialize(data = nil, nextNode = nil)
  @data = data
  @nextNode = nextNode
  @size = 0
end
Run Code Online (Sandbox Code Playgroud)