我正在尝试将元素推送到此数组的末尾,并且出现了一个我不理解的错误。
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
答案 0 :(得分:5)
在Ruby中,构造函数是initialize
,而不是new
。但您仍然使用new
来创建对象,例如Checkout.new
。
此外,方法名称后面的括号是可选的,并且在没有参数时通常在Ruby中避免使用。
def initialize
@items = []
end