[英]immutability of data structures and variables in functional programming
通常說在功能編程中,數據結構是不可變的。 我知道不可變數據結構是無法更改的數據結構。
但是,這是否也意味着變量引用也不能更改?
例如,
var arr = [1,2,3]
arr = [4,5,6]
在這段代碼中,我沒有更改數組[1,2,3],但是創建了一個新數組。 盡管如此,我還是更改了變量“ arr”的引用。 此代碼是否遵循不變性數據結構的原理?
您不應該重新分配參考。 理想情況下,您將創建一個新變量,以便可以看到所做的任何更改的“之前和之后”。
但是,即使指向該基礎結構的引用發生了更改,其基礎結構仍然可以保持不變。 如果有人正在查看結構的舊版本,則重新分配引用不會損害數據的有效性,因為舊版本仍然存在,並且沒有變化。
這是否也意味着變量引用也不能更改?
是。 然后,它們被稱為常量 。 你最好寫
const arr1 = [1,2,3]
const arr2 = [4,5,6]
這種方法還允許您將范圍環境也視為不可變的數據結構,這應該是默認設置。 它使代碼推理變得容易得多。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.