19、Rust 中的不可变性:概念、实现与应用

Rust 中的不可变性:概念、实现与应用

1. 不可变性基础概述

在 Rust 中,存在一种特性允许在不可变容器内对数据进行修改,这就是内部可变性。可共享的可变容器在某些情况下会允许隐藏的可变性,不过在大多数情形下这并非问题。继承可变性和内部可变性的实际区别在于,前者由编译器强制实施,而后者在运行时强制实施。

一般来说,即使容器本身不可变, Cell RefCell OnceCell 内的值也可以选择可变。 Cell RefCell OnceCell 相比,稍微不那么复杂,因为它只能通过替换来实现可变性,不能直接修改 Cell 内的值,只能用新值替换。而 RefCell OnceCell 允许获取其所持数据的可变引用。

Rust 的标准库没有专门为不可变性设计的数据结构,其数据结构通常是传统的可变数据结构。 Vec HashMap 提供了多种可变访问方法,除了实现 Clone 特征外,在处理不可变数据方面的功能有限。在 Rust 中实现不可变性的基本模式包括两个步骤:
- 一个值声明并赋值后,不应原地修改。
- 如果要修改值,先复制它,然后修改副本。

2. Rust 不可变性基础回顾

通过代码示例回顾 Rust 中不可变性的基础知识很有必要

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值