⚡ 编程实验室🏗️ 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🎮 游戏🏠 网站首页

Rust智能指针详解

学习Box、Rc、RefCell等智能指针的原理与用法 · 难度:入门 · +15XP

智能指针概述

智能指针是Rust中一种特殊的数据结构,它不仅持有内存地址,还拥有所有权和额外的元数据。常见的智能指针包括Box<T>Rc<T>RefCell<T>等。

智能指针特点适用场景
Box<T>堆上分配,单一所有权递归类型、trait对象
Rc<T>引用计数,共享所有权多所有权场景
RefCell<T>运行时借用检查内部可变性

Box示例

fn main() {
    let b = Box::new(5);
    println!("b = {}", b); // 自动解引用
}

Rc示例

use std::rc::Rc;

fn main() { let a = Rc::new(5); let b = Rc::clone(&a); println!("引用计数: {}", Rc::strong_count(&a)); }

RefCell示例

use std::cell::RefCell;

fn main() { let data = RefCell::new(10); *data.borrow_mut() += 5; println!("{:?}", data.borrow()); }

练习提示:尝试用Box实现一个递归的链表结构,或用RefCell修改不可变引用中的值。

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

🏆 学习排行

加载中...

📊 统计

📖 122 篇
0 完成
🔥 0