Ich habe den folgenden Code:Ruby Stack-Ebene zu tief (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
Das alles funktioniert gut und produziert 220 Aber wenn ich ersetzen die zweite Zeile attr_accessor: Preis mit:
def price
@price = price
end
Ich bekomme Stack-Level zu tief (SystemStackError) Fehler. Was ist los? Ich weiß, dass ich Integer (Preis * 100 + 0,5) mit @Price anstelle des Methodenaufrufpreises ersetzen kann, aber ich möchte es so behalten, wie es für OOP-Gründe ist. Wie kann ich diesen Code ohne attr_accessor so machen, wie er ist?
'def Preis = (Preis)' suchen, ist auch in Ordnung. – steenslag
@steenslag Ja, Sie haben Recht !! –
Danke, ich nehme an, ich verwende def price = (new_price) aus Gründen der Klarheit. – daremkd