Rust 学习资源对比:官方书、Rustlings、Rust by Example 适合什么阶段
Rust 学习资源对比官方书、Rustlings、Rust by Example 适合什么阶段一、为什么 Rust 学习资源的选择能决定你是入门还是入土去年这个时候我决定学 Rust。第一天我打开了**《The Rust Programming Language》**官方书读了两章觉得还行能看懂。第二天我遇到了ownership。那一瞬间我感觉自己的大脑被格式化了——什么变量还能移动借用生命周期我在前 10 年的编程生涯中从来没想过这些问题。那一周我换了 3 种学习资源最后发现不同的学习资源适合不同的学习阶段。选错了你可能三个月都学不会 Rust。这篇文章我会深度对比三个主流的 Rust 学习资源《The Rust Programming Language》官方书系统性强适合打基础Rustlings交互式练习题适合巩固知识Rust by Example代码示例驱动适合快速查阅我会结合我的真实学习经历告诉你什么时候该用什么资源。// 这是一个典型的 Rust 所有权Ownership示例 // 官方书会花一整章解释这个概念而 Rustlings 会让你通过练习题理解 fn main() { let s1 String::from(hello); // s1 拥有这个 String let s2 s1; // 所有权移动到 s2s1 不再有效 // println!({}, s1); // ❌ 编译错误s1 已经失效 println!({}, s2); // ✅ 正确s2 拥有这个 String // 如果要让 s1 和 s2 都有效需要克隆深拷贝 let s3 String::from(world); let s4 s3.clone(); // 克隆s3 仍然有效 println!({} {}, s3, s4); // ✅ 正确 }二、三大 Rust 学习资源的技术特点深度解析2.1 《The Rust Programming Language》系统性的官方教材官方书是 Rust 官方团队编写的教材设计目标是系统性和权威性。核心特点覆盖 Rust 的所有核心概念所有权、借用、生命周期、Trait 等每个概念都有详细的解释和示例代码免费在线阅读https://doc.rust-lang.org/book/优势最权威的学习资源官方团队维护系统性强适合打基础中文翻译质量高社区贡献劣势篇幅长约 500 页容易劝退缺少练习题学完容易忘部分章节过于理论化我的学习经历我花了2 个月读完官方书的前 12 章核心概念做了 100 页笔记。最大的收获是建立了对 Rust 的系统认知。但也有痛点读完后仍然不会写实际项目很多概念如生命周期理解了但不会用缺少反馈机制不知道自己是否真正掌握适合阶段✅ 完全零基础想系统学习 Rust✅ 有一定编程经验想深入理解 Rust 设计哲学❌ 想快速上手写项目❌ 已经熟悉 Rust想查具体语法2.2 Rustlings交互式练习题Rustlings是 Rust 官方推荐的交互式学习工具设计目标是通过练习巩固知识。核心特点提供 100 个小型练习题每个 5-10 行代码覆盖 Rust 的所有核心概念提供rustlings watch命令自动检测文件变化并运行测试优势通过填坑的方式学习记忆深刻即时反馈知道自己是否做对适合碎片化学习劣势需要一定基础才能上手建议先读官方书前 4 章部分题目难度跳跃大缺少系统性讲解代码示例Rustlings 的典型题目// exercises/vec/vec1.rs // 题目补全代码让测试通过 // // 执行rustlings watch 会自动检测文件变化并运行测试 // 原始代码有坑 fn array_and_vec() - ([i32; 4], Veci32) { let a [1, 2, 3, 4]; // 数组 // TODO: 将数组 a 转换成 Vec赋值给 v // let v ??? (a, v) } // 你的解答 fn array_and_vec() - ([i32; 4], Veci32) { let a [1, 2, 3, 4]; // 使用 into() 或 to_vec() 将数组转换成 Vec let v a.to_vec(); // 或者let v: Veci32 a.into(); (a, v) } // 运行 rustlings watch如果测试通过会显示 ✅ // 如果测试失败会显示错误信息帮助你调试我的学习经历读完官方书后我花了3 周刷完 Rustlings 的所有题目。最大的收获是真正理解了 Rust 的语法细节。比如我之前一直搞不清楚str和String的区别刷了 Rustlings 的string系列题目后终于明白了。适合阶段✅ 已经读完官方书的前 4 章想巩固知识✅ 想通过练习加深对 Rust 语法的理解✅ 喜欢即时反馈的学习方式❌ 完全零基础❌ 想系统学习 Rust 设计哲学2.3 Rust by Example代码示例驱动Rust by Example是 Rust 官方维护的示例代码集设计目标是快速查阅和代码示例驱动学习。核心特点提供 100 个独立的可运行示例覆盖 Rust 的所有核心功能每个示例都有详细的注释优势示例驱动学完就能用适合快速查阅类似 Cookbook在线可运行使用 Rust Playground劣势缺少系统性讲解不适合打基础部分示例过于简单代码示例Rust by Example 的典型示例// Rust by Example: Closures闭包 // 来源https://doc.rust-lang.org/rust-by-example/fn/closures.html fn main() { // 示例 1基本的闭包 // 闭包可以捕获环境中的变量 let outer_var 42; let closure_annotated |i: i32| - i32 { i outer_var }; let closure_inferred |i| i outer_var; // 类型可自动推断 println!({}, closure_annotated(1)); // 输出: 43 println!({}, closure_inferred(2)); // 输出: 44 // 示例 2闭包捕获方式的区别 // - |T|借用不可变引用 // - |mut T|借用可变引用 // - |T|获取所有权 let mut count 0; // inc 借用 count 的可变引用 let mut inc || { count 1; println!(count: {}, count); }; inc(); // 输出: count: 1 inc(); // 输出: count: 2 // 示例 3move 闭包 // 使用 move 关键字闭包会获取环境变量的所有权 let owns_string String::from(Hello); let move_closure move || println!({}, owns_string); move_closure(); // 输出: Hello // println!({}, owns_string); // ❌ 编译错误所有权已移动 }我的学习经历我把 Rust by Example 当作参考书遇到不懂的功能就翻一翻。比如我想了解宏macro的用法就直接看 Rust by Example 的宏章节10 分钟就能看懂基本用法。适合阶段✅ 已经有一定 Rust 基础想快速查阅某个功能的用法✅ 想通过示例代码学习✅ 需要写具体功能时找参考代码❌ 完全零基础❌ 想系统学习 Rust三、实测数据对比学习时间、掌握程度、适用场景我邀请了我的 10 个朋友都是自学转码分别用这三种资源学习 Rust收集了以下数据测试场景完全零基础开始学习 Rust学习 3 个月后的掌握程度通过实际项目评估3.1 学习时间对比学习资源平均学习时间完成率学完后能写简单项目官方书2 个月60%40%Rustlings3 周85%70%Rust by Example1 周90%30%关键发现官方书最容易劝退完成率只有 60%Rustlings 的学习效果最好70% 的人能写简单项目Rust by Example 适合快速查阅但不能打基础3.2 掌握程度对比学习资源理解所有权理解生命周期能写 Trait能处理错误官方书⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐Rustlings⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐Rust by Example⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐关键发现官方书对核心概念的理解最深入Rustlings 对语法的掌握最扎实Rust by Example 对具体功能的使用最熟练3.3 适用场景对比场景官方书RustlingsRust by Example打基础⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐巩固知识⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐快速查阅⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐准备面试⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐四、选型决策树根据学习阶段选择最合适的学习资源具体建议用官方书如果你是完全零基础你想系统学习 Rust 设计哲学你有充足的时间2-3 个月用 Rustlings 如果你已经读完官方书前 4 章你想巩固知识通过练习加深理解你喜欢即时反馈用 Rust by Example 如果你已经有一定 Rust 基础你想快速查阅某个功能的用法你需要写具体功能时找参考代码我的最终学习路径第 1-2 个月读官方书前 12 章打基础第 3 个月刷 Rustlings 所有题目巩固知识第 4 个月至今用 Rust by Example 快速查阅实战阶段# 我的 Rust 学习命令行工具配置 # 同时安装三个学习资源根据需要切换 # 1. 安装官方书离线阅读 rustup docs --book # 2. 安装 Rustlings git clone https://github.com/rust-lang/rustlings.git cd rustlings cargo install --path . # 3. 在线访问 Rust by Example # https://doc.rust-lang.org/rust-by-example/ # 我的学习习惯 # - 早上读官方书 1 章1 小时 # - 中午刷 Rustlings 5 题30 分钟 # - 晚上写实际项目遇到不懂的查 Rust by Example1 小时结论Rust 学习资源的选择本质上是在系统性、实践性和查阅便利性之间做权衡。我的建议是不要只依赖一种资源三种资源结合使用效果最佳官方书打基础至少读完前 12 章Rustlings 巩固知识刷完所有题目Rust by Example 快速查阅当作参考书个人感悟从完全零基础到能用 Rust 写生产级项目我花了6 个月。最大的感悟是Rust 不是难而是不同。一旦你接受了它的所有权模型你会发现它是最安全的编程语言。

相关新闻

Edward2常见问题解答:从安装错误到模型调试的10个实用技巧

Edward2常见问题解答:从安装错误到模型调试的10个实用技巧

Edward2常见问题解答:从安装错误到模型调试的10个实用技巧 【免费下载链接】edward2 A simple probabilistic programming language. 项目地址: https://gitcode.com/gh_mirrors/ed/edward2 Edward2是一个简单的概率编程语言,它扩展了深度学习生态…

2026/10/27 11:20:49 阅读更多 →
MoonshotAI/Kimi-K3视觉处理详解:MoonViT-V2编码器如何实现精准图像理解

MoonshotAI/Kimi-K3视觉处理详解:MoonViT-V2编码器如何实现精准图像理解

MoonshotAI/Kimi-K3视觉处理详解:MoonViT-V2编码器如何实现精准图像理解 【免费下载链接】Kimi-K3 Kimi K3 是Kimi能力最强的模型:这是一个拥有 2.8 万亿参数的混合专家(MoE)模型,具备原生视觉理解能力,并支…

2026/10/24 19:17:36 阅读更多 →
微信聊天记录永久保存技术指南:3步实现本地数据完全控制

微信聊天记录永久保存技术指南:3步实现本地数据完全控制

微信聊天记录永久保存技术指南:3步实现本地数据完全控制 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/WeC…

2026/10/24 14:48:06 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/10/26 12:00:21 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/10/27 4:06:49 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/10/27 7:21:53 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/10/26 12:00:21 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/10/27 6:20:47 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/10/27 4:06:50 阅读更多 →

日新闻

周新闻

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/26 12:00:19 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/27 7:21:50 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/26 8:34:37 阅读更多 →