【发布时间】:2017-02-23 11:11:38
【问题描述】:
我已经阅读了互联网上几乎所有不可变/可变变量的定义,但作为初学者,我并没有完全掌握它,所以我想知道是否有人真的可以用外行的方式来解释它。
任何编程语言中的不可变变量(或对象)都是我所理解的,即当变量被赋值后无法更改该变量的值时。例如,我使用 Haskell 编程语言,我写:
let x = 5
由于 Haskell 有不可变的变量,x 永远不能有任何其他值而不是 5。所以如果我在那行代码之后写:
x = 2
我实际上并没有改变 x 的值,而是创建了一个同名的新变量,现在它将是我调用 x 时引用的变量,所以在两行代码之后,我只能用2的值。
那么什么是可变变量,哪些编程语言有它呢?这对我来说是模糊的。因为当人们说可变变量时,他们显然指的是一个变量或对象,您可以在为其分配初始值后确实可以更改该值。
这是否意味着如果您有一个可变变量,您实际上会为该变量操作 计算机内存中的位置,并且在不可变变量的情况下,您无法操作计算机内存中的那个位置或什么?
我不知道如何进一步解释我的问题,正如我所说,我知道 mutable = 可以在初始值赋值后更改变量的值,而 immutable = 不能。我明白了定义。但就“幕后”发生的事情而言,我不明白它的实际含义。我想我正在寻找关于实际可变变量的简单示例。
【问题讨论】:
标签: immutability