是否调用创建一个被认为是纯粹的新对象实例?

Jas*_*Jas 1 functional-programming scala

在函数式编程术语中,如果我执行:

val a = new Client
val b = new Client
Run Code Online (Sandbox Code Playgroud)

调用上面的构造函数两次被认为是纯函数还是非纯函数?

par*_*tic 6

如果你可以用以下两行代替:

val a = new Client
val b = a
Run Code Online (Sandbox Code Playgroud)

在不改变整个程序行为的情况下,对象实例化可以被认为是纯粹的(参考透明度).

如果Client构造函数具有任何"可观察的"副作用,或者如果在程序中使用标识相等性,它将失败.