Ich habe eine Klasse namens Food
; Es ist eine sehr einfache Klasse, es hat nur Namen, Preis und Kcal. Ich habe drei Arten von Food
:Verwenden Sie reduzieren, um Attribute von Objekten im Array zu summieren
@Menu = [@Food1, @Food2, @Food3]
Ich brauche alle zu summieren die prices
mit dem reduce
Methode, und speichern sie in @Food1
:
@Food1 = Food.new("Pear", 12, 120)
@Food2 = Food.new("Apple", 15, 100)
@Food3 = Food.new("Banana", 20, 200)
Dann habe ich eine Reihe von Lebensmitteln Menu
genannt erstellt. Ich habe die +
Methode zur food
Klasse implementiert:
def + (other)
@price + other.price
end
Und ich versuche zu tun:
@Food1 = @Menu.reduce(:+)
Aber es funktioniert nicht. Hast du eine Idee, wie ich das erreichen kann?
Die Ruby-Konvention besagt, dass Variablen und Methodennamen nur Kleinbuchstaben enthalten dürfen. Das ist '@ food1' und' @ menu' in diesem Fall. – tadman
Was bedeutet "nicht funktioniert"? Gibt es einen Fehler? – tadman
Zeigen Sie andere relevante Teile von Ihnen Code. Ohne die Initialisierungsmethode zu definieren, funktioniert Ihr Code nicht.Ohne eine Accessor-Methode funktioniert Ihr Code nicht. – sawa