RefCell与内部可变性 #
一、RefCell #
rust
use std::cell::RefCell;
fn main() {
let data = RefCell::new(5);
*data.borrow_mut() += 1;
println!("{}", data.borrow());
}
二、内部可变性 #
rust
use std::cell::RefCell;
struct MockMessenger {
sent_messages: RefCell<Vec<String>>,
}
impl MockMessenger {
fn new() -> Self {
MockMessenger {
sent_messages: RefCell::new(vec![]),
}
}
fn send(&self, message: &str) {
self.sent_messages.borrow_mut().push(String::from(message));
}
}
三、总结 #
本章学习了:
- RefCell 使用
- 内部可变性模式
最后更新:2026-03-27