对于inject的使用
看到Alex的Alex学Ruby[ inject需要注意的地方 ] ,节选部分如下:
inject([]) do |item ,i |这样的写法,每一步,item都会被设置为block的返回值。
如下:
1 2 3 4 5 6 7 8 9 | arr1 = [] arr2 = [1,2,3] arr2.each do |i| arr1 << i+1 end p arr1 #=> [2, 3, 4] |
使用inject,则可以写为:
1 2 3 4 5 6 7 8 | arr2 = [1,2,3] arr = arr2.inject([]) do|arr1, i| arr1 << i + 1 end p arr1 #=>[2,3,4] |
Recent Comments