我几乎读过互联网上不可变/可变变量的每一个定义,但作为一个初学者,我只是不完全掌握它,所以我想知道是否有人能真正用通俗的话来解释它。不可变和可变变量的区别是什么?
任何编程语言中的不可变变量(或对象)都是我理解的,当它在赋值之后无法更改该变量的值时。例如,我现在用的是Haskell的编程语言,和我写的:
let x = 5
由于Haskell有不可改变的变量,X绝不能有任何其他值大于5所以,如果我这一行代码写后:
x = 2
我实际上并没有改变x的值,而是用相同的名字创建了一个新的变量,现在我调用x时会引用这个变量,所以在两行代码之后我只能达到x的值为2.
但是什么是一个可变变量然后什么p程序语言有它吗?这是对我来说很雾的地方。因为当人们说可变变量时,它们显然指的是一个变量或对象,其值可能确实在它被分配了一个初始值后发生了变化。
这是否意味着,如果你有一个可变变量你实际上操纵,在计算机内存地方是可变的,在不变的变量的情况下,你不能操纵计算机内存或什么地方?
我不知道如何进一步解释我的问题,正如我所说,我知道mutable =可以在初始值赋值后更改变量的值,immutable =不能。我得到了定义。但我不明白它在“幕后”发生了什么。我想我正在寻找关于实际可变变量的简单例子。