我假设纯函数必须始终具有返回类型(即,必须不是void)并且必须具有相同的输出,而不管对象的状态和Impure函数是否改变对象的状态或打印对象的状态.
但我使用的教科书指出:
访问器通常包含return语句,但是打印有关对象状态的信息的方法也可以被分类为访问者.
我糊涂了.哪一个是正确的?
编辑
一点澄清,让我问的是这个问题:

最后一个问题是" 给出所使用的功能类型 ",那里评论的人说这是一个不纯的功能,因为它是打印.
那么这个功能是纯粹的还是不纯的?
A.T*_*.T. 31
内容取自此链接
纯功能的特点:
纯函数的返回值完全取决于它的参数因此,如果使用相同的参数集调用纯函数,则始终会获得相同的返回值.
它们没有任何副作用,如网络或数据库调用
不纯函数的特征
不纯函数的返回值不仅仅取决于它的参数因此,如果使用相同的参数集调用不纯函数,则可能会得到不同的返回值.例如,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 inputRun Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
26051 次 |
| 最近记录: |