Ich bin ziemlich vertraut mit dem Modul Ruby Enumerable, oder zumindest so dachte ich. Nehmen Sie den folgenden Code-Schnipsel:Warum Map Enumerable Rückgabewert nicht erwartet Wert
names = [ "Donald", "Daisy", "Daffy" ]
new_empty_array = []
new_names_array = names.map do |name|
new_empty_array << name
end
puts new_names_array.inspect
# prints [["Donald", "Daisy", "Daffy"], ["Donald", "Daisy", "Daffy"], ["Donald", "Daisy", "Daffy"]]
Ich weiß, ich bin nicht map
mit richtig, aber ich war eine Lektion zum Ruby enumerables und kam in diesem Beispiel lehrt, wenn ein Schüler map
aus testet. Der Rückgabewert des Schaufel-Operators (<<
) ist das Array, nachdem ein Element hinzugefügt wurde. Sollte nicht das Ergebnis stattdessen sein:
[["Donald"], ["Donald", "Daisy"], ["Donald", "Daisy", "Daffy"]]
Es scheint, dass die gesamte Schleife Prozesse und der endgültige Rückgabewert der Schaufel Operators verarbeitet werden? Was gibt?
Ist 'first_names' sein soll' names'? – squiguy