["1", "2"].map { |x| x + "." }
#=> ["1.", "2."]
["1", "2"].each { |x| x + "." }
#=> ["1", "2"]
两种方法都对每个元素应用了一个块,我无法理解为什么each
什么都不做
答案 0 :(得分:3)
Array#each
工作了。它只是迭代并在块内每次迭代产生一个元素。完成后,它会返回您调用它的对象["1", "2"].each {|x| p( x + "." ) }
# "1."
# "2."
。要看,每个人都被称为:
{{1}}
但是Array#map
- 为self的每个元素调用给定的块一次。创建一个包含块返回值的新数组。