前言
此次文章,讲述的是Swift的一个新特性(柯里化函数),可能很多iOS开发人员是第一次听这个词汇,包括我自己也是,自己也用了几天时间才总结出来,希望能帮助到各位咯,个人感觉偏向有开发经验的码友,如果零基础的看懂,希望能给个赞!
什么是柯里化函数?
柯里化(Currying),又称部分求值(Partial Evaluation),是一种函数式编程思想,就是把接受多个参数的函数转换成接收一个单一参数(最初函数的第一个参数)的函数,并且返回一个接受余下参数的新函数技术。
如何定义柯里化函数?
如图定义柯里化函数:
柯里化函数实现原理
/***uncurried:普通函数***/
//接收多个参数的函数
/***手动实现柯里化函数***/
//为了让大家都能看懂,我帮你们拆解来看下
//(a:Int):参数
funcadd(a:Int)->(b:Int)->(c:Int)->Int{
{(b:Int)->(c:Int)->Int
in
//返回一个接收余下第一个参数c,并且有返回结果为Int类型的函数
{(c:Int)->Int
in
a+b+c;
注解:这里为什么能使用参数a,b,c?
利用闭包的值捕获特性,即使这些值作用域不在了,也可以捕获到他们的值。
注意只有在闭包中才可以,a,c都在闭包中。
}
}
}
funcaddCur(a:Int)(b:Int)(c:Int)->Int{
)
a+b+c
}
如何调用柯里化函数
|