Ruby中Array迭代器之each, map和collect
each:
对Enumerable对象使用block中的处理进行迭代,最后each返回的还是Enumerable对象
irb(main):001:0> [1,2,4].each{|n| n * 2}
=> [1, 2, 4]
map:
对Enumerable对象使用block中的处理进行迭代,在block中会产生一个新的并经过block处理后的Enumerable对象。
irb(main):002:0> [1,2,4].map{|n| n * 2}
=> [2, 4, 8]
collect:
与map相同,如果从技术层面上将,可以说是map的别名(alias)
map!:
对Enumerable对象使用block中的处理进行迭代,返回修改后的Enumerable对象。
irb(main):003:0> a = [1,2,4]
=> [1, 2, 4]
irb(main):004:0> a.map!{|n| n * 2}
=> [2, 4, 8]
irb(main):005:0> a
=> [2, 4, 8]
浙公网安备 33010602011771号