Ruby, stack level too deep (SystemStackError)

前端 未结 4 1810
时光取名叫无心
时光取名叫无心 2021-02-18 15:40

I have the following code:

class BookPrice
  attr_accessor :price
  def initialize(price)
    @price = price
  end

  def price_in_cents
    Integer(price*100 +          


        
4条回答
  •  小蘑菇
    小蘑菇 (楼主)
    2021-02-18 16:11

    Your below code

    def price
      @price = price # <~~ method name you just defined with `def` keyword.
    end
    

    Creates never stopable recursion,.

    How can I make this code work the way it is without attr_accessor?

    You need to write as

    def price=(price)
      @price = price
    end
    def price
      @price 
    end
    

提交回复
热议问题