Rust 语言学习手册

免费学习 系统级编程 内存安全

Rust学习手册《引用(borrowing)》:引用允许在不转移所有权的情况下访问值,通过 `&` 创建引用。 **不可变引用(`&T`):** 允许多个同时存在,不能修改值。 ```rust fn calculate_length(s: &String) -> usize { ...

借用与引用

引用(borrowing)

【详细说明 & 代码示例】
引用允许在不转移所有权的情况下访问值,通过 `&` 创建引用。 **不可变引用(`&T`):** 允许多个同时存在,不能修改值。 ```rust fn calculate_length(s: &String) -> usize { s.len() // 只读 } let s = String::from("hello"); let len = calculate_length(&s); // 借用 ``` **可变引用(`&mut T`):** 允许修改值,但同一作用域内只能有一个可变引用,且不能同时有不可变引用。 ```rust fn change(s: &mut String) { s.push_str(" world"); } let mut s = String::from("hello"); change(&mut s); ``` **引用规则:** - 任意数量的不可变引用(`&T`) - 或者一个可变引用(`&mut T`) - 引用必须始终有效(由生命周期保证) **悬垂引用(dangling reference):** 编译器会阻止。 ```rust fn dangle() -> &String { // 错误:返回局部变量引用 let s = String::from("hello"); &s } ```

学习提示:建议安装 Rust 工具链(rustup),使用 cargo 构建项目,并熟悉 rustc 编译器错误信息(Rust 的报错非常详细友好)。

全部章节目录(共 63 个知识点)

Rust 基础 (1个知识点)

所有权系统 (1个知识点)

借用与引用 (1个知识点)

生命周期 (1个知识点)

Cargo 与工具链 (2个知识点)

使用说明

  • • 本手册涵盖 Rust 从基础到并发、异步、Web 开发的完整知识体系
  • • 在搜索框输入关键词,快速定位相关知识点
  • • 点击条目标题进入详情页,查看详细说明与代码示例
  • • 页面按分类展示所有知识点,方便系统性学习
  • • 建议通过 Rust 官方文档(doc.rust-lang.org)加深理解