首页 > 解决方案 > 不变性是否允许更改值?

问题描述

我对不变性的理解存在漏洞。我经常听到这样的话:

不变性意味着一个值不会改变

...但是当他们的建模实际上发生变化时,程序员如何处理?

例如,在用户界面中:

const selectedTab = 'users'

如果用户选择另一个选项卡,例如'sales'怎么办?应该selectedTab怎么办?

认为不可变性的描述可能不正确,不可变的值可以改变,但只有在调用函数时才会改变值。例如,选项卡上的点击处理程序可以执行类似的操作

var selectedTab = 'users'
salesTabElement.on('click', function(event){
   ...
   selectedTab = 'sales'
})

也许还有另一种解释。看起来像:

不变性是否允许更改值?

标签: immutability

解决方案


推荐阅读