对应代码文件:src/bin/14_lifetimes.rs
运行命令:
1cargo run --bin lesson14_lifetimes
学习目标生命周期描述引用有效的范围。它让编译器确认引用不会指向已经释放的数据。
初学时不要把生命周期理解成手动控制内存。它只是对引用关系的标注和检查。
理解生命周期用于防止悬垂引用。
知道很多生命周期可以由编译器自动省略。
会读懂简单的 'a 标注。
理解结构体中保存引用时为什么需要生命周期参数。
核心概念速查
术语
基本意思
本节用途
生命...
对应代码文件:src/bin/13_traits_trait_bounds.rs
运行命令:
1cargo run --bin lesson13_traits_trait_bounds
学习目标Trait 定义类型可以具备的行为。Trait bound 则约束泛型类型必须实现某些行为。
如果说泛型回答“我可以接收哪些类型”,trait bound 就回答“这些类型至少要会做什么”。
理解 trait 是行为接口。
会为自定义类型实现 trait。
会用 impl Trait 和 <T: Trait&...
对应代码文件:src/bin/12_generics.rs
运行命令:
1cargo run --bin lesson12_generics
学习目标泛型让同一段代码适用于多种类型。它能减少重复,同时保持静态类型检查。
Rust 的泛型在编译期单态化,常见情况下不会带来运行时动态分发开销。
理解泛型参数 T 的含义。
会定义泛型函数和泛型结构体。
知道泛型需要 trait bound 才能使用特定能力。
理解 Option<T>、Result<T, E> 也是泛型类型。
核心概念...
对应代码文件:src/bin/11_error_handling.rs
运行命令:
1cargo run --bin lesson11_error_handling
学习目标Rust 把错误分成可恢复错误和不可恢复错误。可恢复错误通常用 Result 表达。
错误处理是 Rust 代码可读性的重要部分。你需要明确说明失败时程序应该如何反应。
理解 Result<T, E> 的含义。
会用 match 处理成功和失败。
掌握 unwrap、expect 的风险和适用场景。
理解 ? 运算符如何传...
对应代码文件:src/bin/10_modules_packages.rs
运行命令:
1cargo run --bin lesson10_modules_packages
学习目标模块系统用于组织代码、控制可见性和管理命名空间。Cargo 则负责构建、运行和包管理。
本项目把每节课放在 src/bin 下,并在 Cargo.toml 中声明多个 bin target。
理解 package、crate、module 的基本区别。
掌握 mod、pub、use 的用途。
知道如何通过 Cargo 运行指定...
对应代码文件:src/bin/09_collections.rs
运行命令:
1cargo run --bin lesson09_collections
学习目标集合用于保存运行时数量可变的数据。本节重点是 Vec、String 和 HashMap。
集合通常把数据放在堆上,因此遍历、插入、借用时都会涉及所有权规则。
掌握 Vec<T> 的创建、追加和遍历。
理解 String 是可增长、拥有所有权的 UTF-8 字符串。
掌握 HashMap<K, V> 的插入、读取和更新。
知...
对应代码文件:src/bin/08_enums_pattern_matching.rs
运行命令:
1cargo run --bin lesson08_enums_pattern_matching
学习目标枚举用于表达一个值可能属于有限几种情况。模式匹配用于根据具体情况分支处理。
Rust 的 Option 和 Result 都是枚举。掌握枚举后,错误处理和空值处理会更自然。
掌握 enum 的基本定义。
理解枚举变体可以携带数据。
会使用 match 穷尽处理所有情况。
会使用 if let 简化只关心...