不能'推'到阵列

时间:2012-08-19 21:00:53

标签: ruby arrays

我正在尝试将元素推送到此数组的末尾,并且出现了一个我不理解的错误。

main.rb的:

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

shop.rb

class Shop

    def new()
       @products = []
    end


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

错误:

NoMethodError: undefined method `push' for nil:NilClass

1 个答案:

答案 0 :(得分:5)

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

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

def initialize
  @items = []
end