我幾乎讀過互聯網上不可變/可變變量的每一個定義,但作爲一個初學者,我只是不完全掌握它,所以我想知道是否有人能真正用通俗的話來解釋它。不可變和可變變量的區別是什麼?
任何編程語言中的不可變變量(或對象)都是我理解的,當它在賦值之後無法更改該變量的值時。例如,我現在用的是Haskell的編程語言,和我寫的:
let x = 5
由於Haskell有不可改變的變量,X絕不能有任何其他值大於5所以,如果我這一行代碼寫後:
x = 2
我實際上並沒有改變x的值,而是用相同的名字創建了一個新的變量,現在我調用x時會引用這個變量,所以在兩行代碼之後我只能達到x的值爲2.
但是什麼是一個可變變量然後什麼p程序語言有它嗎?這是對我來說很霧的地方。因爲當人們說可變變量時,它們顯然指的是一個變量或對象,其值可能確實在它被分配了一個初始值後發生了變化。
這是否意味着,如果你有一個可變變量你實際上操縱,在計算機內存地方是可變的,在不變的變量的情況下,你不能操縱計算機內存或什麼地方?
我不知道如何進一步解釋我的問題,正如我所說,我知道mutable =可以在初始值賦值後更改變量的值,immutable =不能。我得到了定義。但我不明白它在「幕後」發生了什麼。我想我正在尋找關於實際可變變量的簡單例子。