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]

posted @ 2013-04-25 10:02  chinatea  阅读(588)  评论(0)    收藏  举报