不能'推'到阵列

Nee*_*eta 0 ruby arrays

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

main.rb的:

require 'shop.rb'
so = Shop.new()
so.get(2)
so.get(1)
Run Code Online (Sandbox Code Playgroud)

shop.rb

class Shop

    def new()
       @products = []
    end


    def get(product)
       @products.push(product)
    end
end
Run Code Online (Sandbox Code Playgroud)

错误:

NoMethodError: undefined method `push' for nil:NilClass
Run Code Online (Sandbox Code Playgroud)

Mar*_*mas 5

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

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

def initialize
  @items = []
end
Run Code Online (Sandbox Code Playgroud)