说明:
each——连续访问集合的所有元素
collect—-从集合中获得各个元素传递给block,block返回的结果生成新的集合。
map——-同collect。
inject——遍历集合中的各个元素,将各个元素累积成返回一个值。
arr = [1,2,3]
- arr2 = arr.each{|element| element = element * 2} #arr与arr2仍然都等于[1,2,3] each返回原数组 遍历内对元素的更改不会保存
- arr2 = arr.map{|element| element = element* 2} #arr等于[1,2,3] arr2等于[2,4,6] map返回更改后的数组 遍历内对元素的更改不会保存
- arr2 = arr.map!{|element| element = element * 2} #arr与arr2都等于[2,4,6] map!返回更改后的数组 遍历对元素内的更改会保存
collect 效果等于 map
collect! 效果等于map!