代码点读机 / Rust / Cell

Cell Rust · 常用类型

单线程下的内部可变性容器,允许在拥有不可变引用时修改里面的值。

怎么用

let 变量 = Cell::new(值); 用 .set()/.get() 读写,用于单线程内部可变

小例子

use std::cell::Cell;
let 计数 = Cell::new(1);
计数.set(2);
println!("{}", 计数.get());

运行结果

2

提醒:只有 .get() 要求 T 实现 Copy;存非 Copy 类型(如 String)用 .set()/.replace()/.take() 也可以;不能返回内部值的引用

官方文档:https://doc.rust-lang.org/std/cell/struct.Cell.html

在代码里遇到不认识的词?打开代码点读机,点一下就懂 → ← Rust全部词条