java和函数的区别_java – 纯函数和不纯函数之间的区别?

内容取自

this link

纯功能的特点:

>纯函数的返回值完全取决于它的参数

因此,如果使用相同的参数集调用纯函数,则始终会获得相同的返回值.

>它们没有任何副作用,如网络或数据库调用

>它们不会修改传递给它们的参数

不纯函数的特征

>不纯函数的返回值不仅仅取决于它的参数

因此,如果使用相同的参数集调用不纯函数,则可能会获得不同的返回值

例如,Math.random(),Date.now()

>他们可能有任何副作用,如网络或数据库调用

>他们可以修改传递给他们的参数

function impureFunc(value){

return Math.random() * value;

}

function pureFunc(value){

return value * value;

}

var impureOutput = [];

for(var i = 0; i < 5; i++){

impureOutput.push(impureFunc(5));

}

var pureOutput = [];

for(var i = 0; i < 5; i++){

pureOutput.push(pureFunc(5));

}

console.log("Impure result: " + impureOutput); // result is inconsistent however input is same.

console.log("Pure result: " + pureOutput); // result is consistent with same input

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值