【发布时间】:2023-03-24 05:45:01
【问题描述】:
我认为我对编程语言副作用的理解还可以。
我认为这是来自wikipedia的一个很好的定义:
"除了返回一个值之外,还修改了一些状态或者有 与调用函数或外部世界的可观察到的交互。”
但是,我在同一个链接中阅读了这篇文章(是的,我知道这可能不是寻找示例的最佳位置):
“副作用行为的一个常见证明是 C++ 中的赋值运算符。例如赋值返回右 操作数并具有将该值分配给变量的副作用。 这允许在语法上清除多个赋值:"
int i, j;
i = j = 3;
为什么他们认为这是一种副作用?与两个局部变量的两个简单赋值语句相同。
提前致谢。
【问题讨论】:
-
引用的文字不正确。赋值操作的值就是赋值,在简单的赋值中,就是右边的值转换为左边的类型。所以,如果
d是一个值为 3.5 的double并且x是一个int,那么x = d的值是 3,而不是 3.5。 -
请注意,引用是关于 C++ 的,它与 C 有很大的不同。
-
非常重要,感谢@BoPersson
标签: c++ c side-effects