0

我试图将一个元素推到这个数组的末尾,但我得到了一个我不明白的错误。

主.rb:

require 'shop.rb'
so = Shop.new()
so.get(2)
so.get(1)

商店.rb

class Shop

    def new()
       @products = []
    end


    def get(product)
       @products.push(product)
    end
end

错误:

NoMethodError: undefined method `push' for nil:NilClass
4

1 回答 1

5

在 Ruby 中,构造函数是initialize,而不是new。但是你仍然使用new来创建一个对象,例如Checkout.new.

此外,方法名称后面的括号是可选的,并且在没有参数时通常在 Ruby 中避免使用。

def initialize
  @items = []
end
于 2012-08-19T21:03:25.217 回答