0

要素をこの配列の最後にプッシュしようとしていますが、理解できないエラーが発生します。

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
4

1 に答える 1

5

Rubyでは、コンストラクターはinitializeであり、ではありませんnew。ただしnew、オブジェクトの作成には引き続き使用しますCheckout.new

また、メソッド名の後の括弧はオプションであり、引数がない場合、Rubyでは通常回避されます。

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