我對Ruby Enumerable模塊非常熟悉,或者至少是這麼想的。看看下面的代碼片段:爲什麼地圖可枚舉的返回值不會返回期望值
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
,但我在教學上的Ruby可枚舉的教訓和整個這個例子就是當一名學生被檢測出map
。鏟子的返回值(<<
)是一個元素添加後的數組。不應該是結果:
[["Donald"], ["Donald", "Daisy"], ["Donald", "Daisy", "Daffy"]]
似乎是整個循環過程和鏟運算符的最終返回值處理?是什麼賦予了?
是'first_names'應該是'names'? – squiguy