纯函数
一个函数的返回结果只依赖于它的参数,且执行中无副作用
怎么理解呢?我们举两个例子就很好理解拉🤓
- 结果只依赖参数:
int a = 1;
private int method(int b){
return a+b;
}//非纯函数,函数返回结果还依赖与函数外的int a
- 执行中无副作用
static outside = 2
private int method(int a,int b ){
print a+b; //副作用对外输出
outside += a; //副作用修改了静态变量的值
return a+b;
}//非纯函数
纯函数很严格,也就是说你几乎除了计算数据以外什么都不能干,计算的时候还不能依赖除了函数参数以外的数据。
那么纯函数有什么用呢?
为了每次操作都返回一个全新的数据(独立,纯净),然后使得热重载和时间旅行这些功能能够使用