第1章 开庭:初识Rust法庭


第 1 章 · 开庭:初识 Rust 法庭

本章要回答的三个问题:Rust 凭什么既没有垃圾回收又能保证内存安全?装一套 Rust 环境到底要装什么?从写代码到跑起来,中间发生了什么?

为什么会有这一章

系统编程长期被两难困住:要性能就得贴着内存 manually 管理,C/C++ 的悬垂指针、越界访问、双重释放由此而生;要安全就上垃圾回收,延迟与运行时开销又下不来。Rust 的答案是把内存错误的判决从运行时挪到编译时——借用检查器当法官,代码没跑起来先过堂。本章先把这套"法庭"的来龙去脉和基础设施交代清楚,后面九章都在这个框架里断案。

读完能解决什么

  • 说清 Rust 与 C/C++、Go 在内存管理上的本质差异;
  • 独立完成工具链安装、升级,并用 Cargo 建出第一个能编译运行的项目;
  • 看懂一次完整编译中"检查—生成—链接"各阶段在干什么。

各节怎么分工

节 回答哪个问题 关键产出
1.1 为什么是 Rust 内存事故卷宗与 Rust 的判法 三类典型内存错误的成因对照
1.2 搭建审判环境 工具链由哪些部分组成 rustup、cargo 常用命令清单
1.3 第一份判词 编译流程全貌 Hello World 的解剖与编译阶段图

先决条件

  • 会用命令行(打开终端、执行命令、看输出);
  • 任意一门语言的基础编程经验。

往下走到哪

第 2 章进入基础语法取证:类型、变量、函数。那里会出现本套教程的第一批"案件"——类型不匹配与可变性违规的报错。

本章判例速查

第 1 章的功能性结论不多,但每一条都会在后续章节反复被引用,值得整理成速查表带回用。

记忆点 内容 后续出庭位置
三类内存事故 释放后使用、双重释放、泄漏 第 3 章所有权立法的直接动因
rustup 组件四件套 rustc / cargo / rustfmt / clippy 第 7 章工程化流水线
edition 语义 判例集版本,非编译器版本 第 9 章宏的行为差异
target 双档案 debug 取证、release 定性能 所有性能相关章节

学习路线与自查

本章建议的动手清单按顺序执行,每步都有可验证的产出:装好工具链后 rustc --version 有输出;cargo new 建出标准目录;给 HelloWorld 加一条故意写错的类型标注,完整读一遍 E0308 报错;最后用 cargo build --release 对比两份产物的体积差。四步做完,说明审判环境已经可以受理真正的案件。

一个常见误区要提前驳回:在 debug 构建下做性能比对并得出结论。debug 默认不做优化且带大量断言,数组越界检查、整数溢出策略都会与 release 不同,凡涉及速度的判断一律以 release 为准。这条纪律贯穿全书,之后不再重复提醒。

环境验收清单

本章结束时逐项打勾,全部通过再进第 2 章:rustc 与 cargo 版本可打印;cargo new 建出的项目能 cargo run 出结果;rustfmt 与 clippy 至少各跑过一次并看懂输出;亲手触发过至少一条 E 编号报错并完整读完。第五项常被跳过,但它恰恰是最重要的一项——本教程的方法论建立在"与编译器对话"之上,第一次对话越早发生越好。

本章关键词表

备查关键词按出现顺序:内存安全三事故、rustup 工具链、rustc 流水线、Cargo 三件套(new/build/run)、E 编号报错格式、debug 与 release 双档案。每个词背后各有一节正文,索引这张表即可回庭。下一章起代码量陡增,本章建立的环境与读报错能力将每分钟都在使用——若跳过本章直入语法,绝大多数读者会在第一次 E0308 面前折返。

作者与出处
原作者:灏天文库
来源:平台策划编纂
整理人: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U