extension Array {
    func foldLeft(a:T, action:(T, T)->T)->T {
        var ret:T = a
        for b:T in self {
            ret = action(ret,b)
        }
        return ret
    }
}


把这个放到项目当中任何一个swift文件当中,即可全局访问。

示例:

求最小值

var t = [1,3,5,4,9,100,6,-2]
let b = t.foldLeft(t[0], action: {a,b in if a<b {return a} else {return b}})

输出 -2

求和

let c = t.foldLeft(0, action: {$0+$1})

输入: 126