纯函数可以在同一个类中使用私有常量变量吗?

bbn*_*bnn 3 functional-programming pure-function

纯函数可以在同一个类中使用私有常量变量吗?

例如:

class TimesThousand {
  const CONSTANT = 1000;

  function calculate(number) {
    return number * CONSTANT;
  }
}
Run Code Online (Sandbox Code Playgroud)

可以calculate()被认为是一个pure function

Luk*_*itz 5

当返回值仅由其输入值确定时,纯函数是纯函数,没有任何可观察到的副作用。

所以你的功能是纯粹的。由于 的值CONSTANT(顾名思义)是常数,因此输出完全由输入决定。

来自维基百科

如果以下关于函数的两个陈述都成立,则可以将函数视为纯函数:

  1. 给定相同的参数值,该函数始终计算相同的结果值。函数结果值不能依赖于程序执行过程中或程序的不同执行之间可能改变的任何隐藏信息或状态,也不能依赖于来自 I/O 设备的任何外部输入。
  2. 结果的评估不会导致任何语义上可观察到的副作用或输出,例如可变对象的突变或输出到 I/O 设备。