ruby inject方法

浏览:2409 发布日期:2016-10-25 15:22:58
  1. inject(initial, sym) -> obj

    这个方法接受一个初始值,一个操作符符号,它用初始值以操作符遍历集合中的项,返回结果

    例如:
    arr = [1, 2, 3]
    r = arr.inject(100, :+) -> 106

  2. inject(sym) -> obj

    以操作符一次对集合中元素进行操作。
    例如:
    arr = [1, 2, 3]
    r2 = arr.inect(:+) -> 6

  3. inject(inital) { |memo, obj| block } -> obj

    这个方法接受一个初始值,接受一个块,其中memo第一次为指定的初始值大小,根据块中代码不同,依次改变。最后返回这个memo的值

    例如:

     arr = [1, 2, 3]
     r3 = arr.inject(10) do |sum, item|
         puts sum
         sum += item
     end
     r3 -> 16
  4. inject { |memo, obj| block } -> obj

    这个方法,依次遍历元素,memo是计算后结果,obj是当前集合值。

    例如:

     arr = [1, 2, 3]
     r4 = arr.inject do |sum, item|
         puts sum
         sum += item
     end
     r4 -> 6