Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oop 使用常量全局变量是否可以停止';副作用';完全?_Oop_Global Variables_Side Effects - Fatal编程技术网

Oop 使用常量全局变量是否可以停止';副作用';完全?

Oop 使用常量全局变量是否可以停止';副作用';完全?,oop,global-variables,side-effects,Oop,Global Variables,Side Effects,我知道函数式编程(FP)的目的是不允许“副作用”,这种副作用通常出现在面向对象的命令式语言中,因为使用了全局变量(例如) 然而,在OOP(非FP)语言中,如果使用一个恒定的全局变量,“副作用”会消失吗(因此它的值永远不会改变)?不确定“全局变量”是什么意思,但似乎答案是否定的 更重要的是变量是可变的还是不可变的。这意味着,如果您将某个类发送到函数,您可以确保该类没有更改 现在,这也取决于什么是“副作用”——与可变性无关。e、 g您可以向方法发送一个imutable实例,您不需要更改该实例,但需要

我知道函数式编程(FP)的目的是不允许“副作用”,这种副作用通常出现在面向对象的命令式语言中,因为使用了全局变量(例如)

然而,在OOP(非FP)语言中,如果使用一个恒定的全局变量,“副作用”会消失吗(因此它的值永远不会改变)?

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

更重要的是变量是可变的还是不可变的。这意味着,如果您将某个类发送到函数,您可以确保该类没有更改

现在,这也取决于什么是“副作用”——与可变性无关。e、 g您可以向方法发送一个imutable实例,您不需要更改该实例,但需要执行一些其他操作,例如基于该实例添加/删除记录,或者在FS上创建/删除文件。不确定“全局变量”是什么意思,但似乎答案是否定的

更重要的是变量是可变的还是不可变的。这意味着,如果您将某个类发送到函数,您可以确保该类没有更改


现在,这也取决于什么是“副作用”——与可变性无关。e、 g您可以向方法发送一个imutable实例,您不需要更改该瞬间,但需要执行一些其他操作,例如基于该实例添加/删除记录或在FS上创建/删除文件与该全局变量相关的副作用可能会起作用,是的。与该全局变量相关的副作用可能会,是的。所谓“全局变量”,我指的是具有全局范围的变量,可以在整个程序中访问;许多函数都可以访问此变量。@mts396正如我在回答中所说,我认为这不是正确的问题,因为全局变量最多只是“全局变量”的一个副作用示例,我指的是具有全局范围的变量,可以在整个程序中访问;许多函数都可以访问此变量。@mts396正如我在回答中所说,我认为这不是一个正确的问题,因为全局变量最多只是一个副作用的例子