inject(initial, sym) -> obj
这个方法接受一个初始值,一个操作符符号,它用初始值以操作符遍历集合中的项,返回结果
例如:arr = [1, 2, 3]
r = arr.inject(100, :+) -> 106
inject(sym) -> obj
以操作符一次对集合中元素进行操作。
例如:arr = [1, 2, 3]
r2 = arr.inect(:+) -> 6
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
inject { |memo, obj| block } -> obj
这个方法,依次遍历元素,memo是计算后结果,obj是当前集合值。
例如:
arr = [1, 2, 3] r4 = arr.inject do |sum, item| puts sum sum += item end r4 -> 6