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
Swift中的类似scala的foldleft方法的实现,布布扣,bubuko.com
原文地址:http://kongyang.blog.51cto.com/2612964/1537247