immutability - 不变性是否允许更改值?
问题描述
我对不变性的理解存在漏洞。我经常听到这样的话:
不变性意味着一个值不会改变
...但是当他们的建模实际上发生变化时,程序员如何处理?
例如,在用户界面中:
const selectedTab = 'users'
如果用户选择另一个选项卡,例如'sales'
怎么办?应该selectedTab
怎么办?
我认为不可变性的描述可能不正确,不可变的值可以改变,但只有在调用函数时才会改变值。例如,选项卡上的点击处理程序可以执行类似的操作
var selectedTab = 'users'
salesTabElement.on('click', function(event){
...
selectedTab = 'sales'
})
也许还有另一种解释。看起来像:
- 许多人错误地指出不变性意味着值不能改变
- 有一种方法可以对不涉及更改变量值的更改进行建模。
不变性是否允许更改值?
解决方案
推荐阅读
- angular - 带有消息的Angular 8拦截重定向
- powershell - 带有字符参数的 Powershell -invokesql
- mysql - NodeJS AWS Lambda:连接丢失:服务器关闭了连接
- cypress - Cy.request() 无故超时
- oop - 动态创建对象并通过父类访问
- liquibase - 雪花的 Liquibase 数据库更改日志
- java - Java,无法使正则表达式工作
- swift - 快速更改消息 UIAlertController
- node.js - 启动 Nodejs 和 Docker,然后在单个语句中将参数传递给 index.js
- php - 后增量表现怪异