我试图将一个元素推到这个数组的末尾,我得到一个我不明白的错误.
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)
在Ruby中,构造函数initialize不是new.但你仍然new用来创建一个对象,例如Checkout.new.
此外,方法名称后面的括号是可选的,并且在没有参数时通常在Ruby中避免使用.
def initialize
@items = []
end
Run Code Online (Sandbox Code Playgroud)