⚡ 编程实验室🏗️ HTML🎨 CSS⚡ JavaScript🐍 Python🗄️ SQL☕ Java⚛️ React💚 Vue🟢 Node.js⚙️ C语言🐘 PHP🐹 Go🔷 TypeScript🐬 MySQL🔧 C++🎯 C#🦀 Rust🅱️ Bootstrap💡 jQuery🎸 Django🍃 MongoDB👗 Sass🎪 Kotlin📊 R语言📋 XML📊 Excel🐘 PostgreSQL🐳 Docker🅰️ Angular🎮 游戏🏠 网站首页

Cell内部可变性

通过Cell和RefCell实现内部可变性,绕过借用规则在不可变引用下修改数据。 · 难度:入门 · +15XP

Cell内部可变性

Cell 和 RefCell 提供内部可变性:Cell 适用于 Copy 类型,通过 get/set 方法操作;RefCell 适用于非 Copy 类型,通过 borrow/borrow_mut 在运行时检查借用规则。注意:RefCell 违反借用规则会导致运行时 panic。

use std::cell::{Cell, RefCell};

fn main() { // Cell 示例(Copy类型) let cell = Cell::new(42); cell.set(100); println!("Cell value: {}", cell.get());

// RefCell 示例(非Copy类型) let refcell = RefCell::new(vec![1, 2, 3]); { let mut borrowed = refcell.borrow_mut(); borrowed.push(4); } { let borrowed = refcell.borrow(); println!("RefCell value: {:?}", *borrowed); } }

Ctrl+Enter
🚀 升级VIP
解锁全部课程+AI助手

🏆 学习排行

加载中...

📊 统计

📖 122 篇
0 完成
🔥 0