Ich bin neu bei Ruby und habe Schwierigkeiten bei der Fertigstellung dieses Warenkorbprogramms. Ich bin mir nicht sicher, was ich falsch mache. Kann jemand mir sagen, wie man die letzten zwei Zeilen erhält, um den Code auszugeben, den ich in den Anmerkungen neben ihnen habe? Jede Hilfe wäre willkommen. Vielen Dank.Ruby Einkaufswagen
class Store
def initialize
@products = {"eggs" => 1.5, "bread" => 3.00, "granola cereal" => 3.4, "coffee" => 2.3, "pie" => 4.7}
@cart = []
end
def add_to_cart(item)
@cart << item
end
def add_product(item, price)
@products[item] = price
end
def cart_total
@cart.inject(0){|sum, item| sum + @products[item]}
end
def items
@products.join(', ')
end
end
store = Store.new
store.add_to_cart "eggs"
store.add_to_cart "Pie"
store.add_to_cart "bread"
puts store.cart # output: eggs, pie, bread
printf "$%6.2f", store.cart_total # output: $ 9.20
Wenn ich versuche, dies zu laufen, bekomme ich diesen Fehler:
nil can't be coerced into Float
(repl):17:in `+'
(repl):17:in `block in total'
(repl):17:in `each'
(repl):17:in `inject'
(repl):17:in `total'
(repl):28:in `<main>main>'
Überprüfen Sie die Groß-/Kleinschreibung von 'pie' ;-) – Carpetsmoker
Denken Sie daran, dass Fließkommawerte immer Näherungen sind, daher ist es problematisch, sie für monetäre Berechnungen zu verwenden. – tadman