介绍
本书是 Rust 编程语言的主要参考资料,所提供的内容为三类:
- 介绍语言构造及使用的章节。
- 介绍内存模型、并发模型、运行时服务、链接模型和调试功能的章节。
- 介绍相关语言设计基本原理和其他对设计有影响的参考资料的附录章节。
提醒: 本书还不完整,要记录所有内容还需要一段时间。 可以查看 GitHub issues 了解本书还未记录的内容。
Rust 发布
Rust 语言每六周发布一个新的版本。
第一个稳定版本是 Rust 1.0.0 ,随后是 Rust 1.1.0 等等。
rustc
、 cargo
等工具和 标准库 、本书等文档都随同语言版本一起发布。
本书原版新版本与最新的 Rust 版本匹配,可在 https://doc.rust-lang.org/reference/ 找到。之前版本可通过在 "reference" 前添加 Rust 版本号找到。 例如 https://doc.rust-lang.org/1.49.0/reference/ 。
【矢量工坊宝儿姐】注:当前的中文译本以2023年4月9日源 (Rust 1.69) 为基础,如有贡献、建议和问题,请至译本仓库https://github.com/VectorWorkshopBaoErJie/RustReferenceTranslate/
参考 不记录的内容
本书不是语言的简要介绍,如有需要,可以阅读 Rust 官方提供的 入门文档 。
本书中也没有语言发行版所包含 标准库 的参考内容。 标准库的参考是通过从源代码中提取文档属性,而单独记录。 许多 Rust 学习者所期望的语言特性可能包含于库中,因此可能要去标准库的参考中查找。
本书也通常不会记录 rustc
和 Cargo 工具的具体细节。
rustc
有其自己的 文档 。
Cargo 也有一本 文档 ,其中包含 参考。
但有些,如 链接 页仍然对 rustc
的工作机制有所描述。
本书仅作为 Rust 稳定版本的参考,对于正在开发中的特性,请参见 未稳定性文档。
Rust 编译器,包括 rustc
,会执行优化操作。
本书没有明确说明允许或禁止哪些优化。
对于编译后的程序,你需要通过运行程序、提供输入和观察输出的方式做 "黑盒" 测试,这样产生的效果应符合手册所阐述的内容。
当前,本书还没有达到完全规范和标准,还包含着一些依赖于 rustc
的特定细节,这些不应当成语言部分的规范。
我们打算在未来发布更加规范的参考。
如何使用本书
本书并不需要顺序阅读。 通常可以去单独阅读每个章节,其中未展开讨论的内容通常会交叉链接到其他章节。
建议阅读本书的方式主要有两种。
一、查找特定的问题的答案。
可以按下 s
键或点击顶部栏上的放大镜搜索与问题相关的关键词。
二、提高对语言某个方面的了解。 那么,只需浏览目录,展开阅读某一主题。
开卷有益,学而不怠,与君共勉。
约定
本书作为技术类书籍,信息表达方式上有一些约定。
-
定义术语的语言句子中,该术语会以 斜体 的形式出现。 在该章节之外的位置使用该术语时,通常以链接指向其定义部分。
如 某某术语 是指......这样的术语定义。
-
在以 粗体 标识的块中,使用 "版次差异:" 这样的字眼来说明不同版本中编译的差异。
版次差异: 在 2015 版中,这个语法是有效的,但在 2018 版中不允许。
-
"注意:" 为粗体的块,通常来注明关于书的状态,或者指出一些有用的而超出本书范围的信息。
注意: 这是一个标注的示例。
-
警告将显示为特殊的警告框的形式,用于标注语言中的非安全行为或可能引起混淆的语言特性。
警告: 这是一个警告的示例。
-
正文中的内联代码片段包含在
<code>
标签内。较长的代码示例会在一个语法高亮的框中展示,该框右上角有复制、执行和显示隐藏行的控制按钮。
// 这是隐藏行。 fn main() { println!("这是代码示例"); }
所有的示例都是针对 Rust 最新版本编写的,除非另有说明。
-
语法和词法结构包含在块中,第一行以 粗体上标 的形式标注 "词法" 或 "语法" 。
更多信息参见 符号约定 。
贡献
我们欢迎各种贡献。
你可以向 Rust 参考仓库 提交内容。对于发现的任何错误或不规范的问题,请 提交 issue 。
如果你的问题在本书中没有得到解答,你认为该问题有必要包含在本书中,请 提交 issue 或在 Zulip 的 t-lang/doc
频道提问。
通过这样的方式来了解本书最常使用的内容,有助于集中精力使这些部分变得更好。