纯函数(pure function )
程序员文章站
2022-04-01 09:54:26
...
总是会看见 纯函数(pure function )这个名词,但是都不知道什么是纯函数,它与一般函数的区别是什么?
-
相同的输入,永远会得到相同的输出
Fure Function 的返回值,只能由其函数入参所决定,而不能有其他的干扰因素
例如:
var number=3;
function add ( n ) {
return n+number;
}
这里add函数的返回值不仅由参数n决定,还由外部变量number决定,当改变外部变量number的值时,对传入相同的n值,并不能得到相同的返回值,所以add不是纯函数。
-
Pure Function 在计算返回值的时候不会产生副作用(Side Effect)
什么是副作用?
副作用是在计算结果的过程中,系统状态的一种改变,或是外部世界可观察的交互作用。
例如I/O 操作,修改函数入参或函数外部的变量,抛出异常,发送http请求等,只要与function外部环境发生交互作用的都是副作用。就 JavaScript 而言,我们常用的 console.log() 函数 – 会输出内容到控制台,用来生成随机数的 Math.random() – 会改变全局的 seed……
纯函数的优点
每个 Pure Function 的运行结果都是可重现的。这样的好处就是 Pure Function 十分容易进行测试 – 因为这完全是一个透明的盒子。
推荐阅读
-
事件函数function(e){}中e的问题解决办法
-
详解立即执行函数(function(){}()),(function(){})()
-
javascript function(函数类型)使用与注意事项小结
-
asp中去除内容HTML标签的三个function函数
-
关于函数:function 的学习(第一弹)
-
php使用function_exists判断函数可用的方法
-
PHP register_shutdown_function函数的深入解析
-
JS中注入eval, Function等系统函数截获动态代码
-
asp 实现检测字符串是否为纯字母和数字组合的函数
-
php的日期处理函数及uchome的function_coomon中日期处理函数的研究