可以使用一个恒定的全局变量来阻止副作用的问题'彻底?

时间:2017-11-26 11:45:02

标签: oop global-variables side-effects

我知道功能编程(FP)的目的是禁止副作用,这些副作用传统上由于使用全局变量而出现在面向对象的命令式语言中(例如)。

但是,在OOP(非FP)语言中,可以产生副作用'如果使用一个常量的全局变量(因此它的值永远不会改变),它就会消失吗?

1 个答案:

答案 0 :(得分:0)

不确定“全局变量”是什么意思,但似乎答案是“否”。

更重要的是变量是可变的还是不可变的。这意味着如果你发送一些类来运行,你可以确定它没有改变。

现在它还取决于什么是“副作用” - 这与可变性无关。例如,您可以向方法发送一个imutable实例,您不会改变该瞬间,但您将进行一些其他操作,例如添加/删除该实例上的记录或在FS上创建/删除文件