对应代码文件: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 简化只关心...
对应代码文件:src/bin/07_structs_methods.rs
运行命令:
1cargo run --bin lesson07_structs_methods
学习目标结构体用于把相关数据组合成有名字的类型。方法则把和这个类型相关的行为放在一起。
Rust 没有传统面向对象里的类,但结构体加 impl 可以表达清晰的数据和行为边界。
掌握命名字段结构体的定义和创建。
理解字段访问、结构体更新语法和派生调试输出。
掌握 impl、方法和关联函数。
区分 self、&self 和 &...
对应代码文件:src/bin/06_references_slices.rs
运行命令:
1cargo run --bin lesson06_references_slices
学习目标本节继续所有权之后的主题:引用和切片。引用让你借用整个值,切片让你借用值的一部分。
切片不拥有数据,只描述一段连续区域。它常用于字符串、数组和 Vec 的只读访问。
理解 &T 和 &mut T 的含义。
知道切片 &str、&[T] 是借用的一段连续数据。
掌握字符串切片和数组切片的范围语...