我对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