Why You need Currying Function?
为什么需要柯里化函数
什么是柯里化
将使用多个参数的函数转换成一系列使用一个参数的函数
举例来说目前有个建造三明治的函数,通过传入三个参数来构建个三明治:
而将函数柯里化的意思就是将这个函数拆成三个函数,每个函数只接受单一参数:
这么写仍些难阅读,因此可以进一步使用箭头函数来简化:
这就是函数柯里化,现在明白有这样的酷方法,与其传递参数,改为传递一个个的函数有什么好处呢?
柯里化的好处
更高的复用性
还是举三明治的例子,如果没有完整的传递所有参数,假设只传递了 breead
与 meat
参数,那么就会返回一个函数,指示须输入 vegetable
参数:
这样就创造了一个局部应用(Partially applied)的函数,可以用来构建不同的三明治,而不用每次都传递所有参数。聪明的你已经发现这个超赞的特性可以马上应用在实际的开发中,例如开一家三明治店生产不同种类的三明治:
参考资料