可变性与不可变(Mutability and Immutability)
缩写:无
简述
可变指创建后可就地修改;不可变修改时产生新数据而非改旧值。不可变利于推理、缓存与并发;可变利于局部高效更新。系统常在边界用不可变消息、在内部可控可变。
使用场景
状态管理、函数式风格、多线程共享。
实践与应用
• 默认不可变,热点再测后放开
• 可考虑结构共享的持久化结构
注意事项
• 表面不可变容器内含可变元素
• 深拷贝成本被低估
对比与易混
| 可变 | 不可变 | |
|---|---|---|
| 修改方式 | 就地改 | 产生新数据 |
| 并发共享 | 需同步 | 更易安全共享 |
关联术语
• 副作用:就地修改是副作用的一种
• 引用:共享引用放大可变带来的别名问题
• 纯函数:常与不可变数据搭配
• 并发:不可变数据更易安全共享