Я довольно знаком с модулем Ruby Enumerable или, по крайней мере, так думал. Рассмотрим следующий фрагмент кода:Почему map перечислимое возвращаемое значение не возвращает ожидаемое значение
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"]]
Я знаю, что я не использую map
правильно, но я учил урок на Руби перечислимых и наткнулся на этот пример, когда студент испытывал map
аут. Возвращаемое значение оператора лопаты (<<
) - это массив после добавления элемента. Не следует ли результат вместо того, чтобы быть:
[["Donald"], ["Donald", "Daisy"], ["Donald", "Daisy", "Daffy"]]
Кажется, что все процессы цикла и конечное значение обратного оператора лопаты обрабатываются? Что дает?
должен быть '' names' first_names'? – squiguy