私は次のコードを持っている:ルビー、あまりにも深いスタックレベル(SystemStackError)
class BookPrice
attr_accessor :price
def initialize(price)
@price = price
end
def price_in_cents
Integer(price*100 + 0.5)
end
end
b = BookPrice.new(2.20)
puts b.price_in_cents
をこのすべてがうまく機能し、220を生成するが、私は二行目のattr_accessorを交換する場合:価格と:
def price
@price = price
end
スタックレベルが深すぎる(SystemStackError)エラーが発生します。どうしたの?私はInteger(price * 100 + 0.5)をメソッド呼び出し価格の代わりに@priceに置き換えることができますが、私はそれをOOPの理由と同じように保ちたいと思います。このコードをattr_accessorなしで動作させるにはどうすればよいですか?
'DEF価格=(価格)'も結構です探しているものです。 – steenslag
@steenslagはい、あなたは正しいです! –
ありがとう、私は推測して、わかりやすくするためにdef price =(new_price)を使用します。 – daremkd