纯函数的奥秘

原创 路小川 随笔 随手 70阅读 2019-04-14 17:36:32 举报

没错!函数都有纯不纯的区分!
在函数式编程中,我们会接触到这么一个概念:纯函数。那什么是纯函数呢?官方定义是:
1、一个函数的返回结果依赖于它的传入参数。
2、并且在执行过程中没有副作用。
这里我们来讲讲第一点。一个函数的返回结果依赖于它的传入参数,这里我们可以看个例子。

可见返回的结果完全取决于传入参数。
那么第二点:执行过程中没有副作用。这里的副作用是指函数内部与其外部的任意交互,可能是在函数内修改外部变量或者是函数内调用另一个函数。

从这里可以看出,函数内部改变了obj的属性,由于对象作用域在函数以外,导致此函数不纯。相应的副作用也包括 http请求,控制台打印数据,dom操作,获取当前时间等等。
所以,如果我们使用非纯函数的话,如果函数内某个功能发生改变,将会使得函数发生错误,并且在多人协作的时候,也不好维护。所以我们提倡使用纯函数,这样使得我们的代码复用性和可测试性都优于非纯函数。这也是函数式编程的一个重点。

评论 ( 0 )
最新评论
暂无评论

赶紧努力消灭 0 回复