纯函数是指在相同的输入下,总是返回相同的输出,且没有副作用的函数。具体来说,纯函数不会改变任何传入的参数,也不会在函数外部改变全局变量、文件系统、数据库等状态,它只是接收输入并返回输出,不会产生任何可观察的副作用。
简单来说就是什么样的输入就是什么样的输出,不会改变原数据
纯函数具有以下特点:
- 相同的输入总是返回相同的输出
- 函数执行过程中不会改变任何传入的参数或者环境的状态
- 没有任何可观察的副作用,如修改全局变量、文件系统、数据库等状态
- 不依赖于任何外部状态,只依赖于传入的参数
非纯函数:
- 跟时间相关
- 跟随机值相关
- 跟i/o相关