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方法的实现
时间: 2024-10-06 05:34:01