纯函数
2021/7/21 13:06:06
本文主要是介绍纯函数,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
什么是纯函数?
-
相同的输入永远会得到相同的输出,而且没有任何可观察的副作用
-
纯函数就类似数学中的函数(
用来描述输入和输出之间的关系
)y=f(x)
纯函数库
lodash
是一个纯函数的功能库,提供了对数组、数字、对象、字符串、函数等操作的一些方法
纯函数的优点
-
可缓存(
间接提升性能
)因为纯函数对相同的输入始终有相同的结果,所以可以把纯函数的结果缓存起来
-
可测试
纯函数让测试更方便
-
并行处理
在多线程环境下并行操作共享的内存数据很可能会出现意外情况
纯函数不需要访问共享的内存数据,所以在并行环境下可以任意运行纯函数
本章例子
纯函数
let array = [1, 2, 3, 4, 5]; console.log(array.slice(0, 3)); console.log(array.slice(0, 3)); console.log(array.slice(0, 3)); // [ 1, 2, 3 ] // [ 1, 2, 3 ] // [ 1, 2, 3 ]
不纯的函数
let array = [1, 2, 3, 4, 5]; console.log(array.splice(0, 3)); console.log(array.splice(0, 3)); console.log(array.splice(0, 3)); // [ 1, 2, 3 ] // [ 4, 5 ] // []
缓存
const lodash = require('lodash'); function getArea(r) { console.log(r); return Math.PI * r * r; } let getAreaWithMemory = lodash.memoize(getArea); console.log(getAreaWithMemory(4)); console.log(getAreaWithMemory(4)); console.log(getAreaWithMemory(4)); console.log(getAreaWithMemory(5)); // 4 // 50.26548245743669 // 50.26548245743669 // 50.26548245743669 // 5 // 78.53981633974483
这篇关于纯函数的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-19永别了,微服务架构!
- 2024-05-15鸿蒙生态设备数量超8亿台
- 2024-05-13TiDB + ES:转转业财系统亿级数据存储优化实践
- 2024-05-09“2024鸿蒙零基础快速实战-仿抖音App开发(ArkTS版)”实战课程已上线
- 2024-05-09聊聊如何通过arthas-tunnel-server来远程管理所有需要arthas监控的应用
- 2024-05-09log4j2这么配就对了
- 2024-05-09nginx修改Content-Type
- 2024-05-09Redis多数据源,看这篇就够了
- 2024-05-09Google Chrome驱动程序 124.0.6367.62(正式版本)去哪下载?
- 2024-05-09有没有大佬知道这种数据应该怎么抓取呀?