简介
本书是 Rust 编程语言的主要参考手册。它提供了三种资料:
- 非正式地描述每个语言结构及其用法的章节。
- 非正式地描述内存模型、并发模型、运行时服务、链接模型和调试工具的章节。
- 提供基本原理和对影响 Rust 设计的语言的引用的附录章节。
警告:本书尚未完成。记录所有内容需要一段时间。有关本书中未记录的内容,请参阅 GitHub issues。
Rust 版本
Rust 每六周发布一个新的语言版本。该语言的第一个稳定版本是 Rust 1.0.0,随后是 Rust 1.1.0,依此类推。工具(rustc
、cargo
等)和文档(标准库、本书等)随语言版本一起发布。
与最新 Rust 版本匹配的本书最新版本始终可以在 https://doc.rust-lang.net.cn/reference/ 找到。可以通过在“reference”目录之前添加 Rust 版本号来查找以前的版本。例如,Rust 1.49.0 的参考手册位于 https://doc.rust-lang.net.cn/1.49.0/reference/。
《参考手册》不是什么
本书不作为该语言的入门介绍。假设读者已经熟悉该语言的背景知识。另一本 书 可用于帮助读者获得此类背景知识。
本书也不作为语言发行版中包含的 标准库 的参考。这些库是通过从其源代码中提取文档属性来单独记录的。人们可能期望的许多语言功能在 Rust 中都是库功能,因此您要查找的内容可能在那里,而不在此处。
同样,本书通常不会记录 rustc
作为工具或 Cargo 的细节。rustc
有自己的 书。Cargo 有一本包含 参考 的 书。还有一些页面,例如 链接,仍然描述了 rustc
的工作原理。
本书也仅作为稳定版 Rust 中可用功能的参考。有关正在开发的不稳定功能,请参阅 不稳定功能手册。
Rust 编译器(包括 rustc
)将执行优化。参考手册没有指定允许或禁止哪些优化。相反,将编译后的程序视为一个黑盒子。您只能通过运行它、向其提供输入并观察其输出来探测它。以这种方式发生的一切都必须符合参考手册中的说明。
最后,本书不是规范性的。它可能包含特定于 rustc
本身的细节,不应将其视为 Rust 语言的规范。我们打算有一天能出版这样一本书,在那之前,参考手册是我们最接近规范的东西。
如何使用本书
本书不假设您是按顺序阅读的。每章通常都可以独立阅读,但会交叉链接到它们所引用的语言的其他方面,但不会进行讨论。
阅读本文档主要有两种方式。
第一种是回答一个特定的问题。如果您知道哪一章回答了该问题,则可以直接跳到目录中的该章。否则,您可以按 s
或单击顶部栏上的放大镜来搜索与您的问题相关的关键字。例如,假设您想知道在 let 语句中创建的临时值何时被丢弃。如果您还不知道 临时变量的生命周期 是在 表达式章节 中定义的,则可以搜索“临时 let”,第一个搜索结果将带您到该部分。
第二种是一般性地提高您对语言某个方面的了解。在这种情况下,只需浏览目录,直到看到您想了解更多信息的内容,然后开始阅读即可。如果某个链接看起来很有趣,请单击它,然后阅读有关该部分的内容。
也就是说,阅读本书没有错误的方法。请以您认为最有助于您的方式阅读它。
约定
像所有技术书籍一样,本书在如何显示信息方面有一定的约定。这些约定在此处记录。
-
定义术语的语句包含用*斜体*表示的术语。每当该术语在该章之外使用时,它通常是指向具有此定义的部分的链接。
*示例术语*是正在定义的术语的示例。
-
由包编译所依据的版本导致的语言差异位于以**粗体**“版本差异:”开头的块引用中。
**版本差异:**在 2015 版本中,此语法是有效的,但在 2018 版本中已弃用。
-
包含有关本书状态的有用信息或指出有用但大部分超出范围的信息的注释位于以**粗体**“注意:”开头的块引用中。
**注意:**这是一个示例注释。
-
显示语言中不健全行为或可能令人困惑的语言功能交互的警告位于一个特殊的警告框中。
警告:这是一个示例警告。
-
文本中的内联代码片段位于
<code>
标签内。较长的代码示例位于语法高亮框中,该框的右上角包含用于复制、执行和显示隐藏行的控件。
// This is a hidden line. fn main() { println!("This is a code example"); }
除非另有说明,所有示例均针对最新版本编写。
-
语法和词法结构位于块引用中,第一行是 粗体上标 的“Lexer”或“Syntax”。
有关更多详细信息,请参阅符号。
贡献
我们欢迎各种形式的贡献。
您可以通过打开问题或向 Rust 参考仓库 发送拉取请求来为此书做出贡献。如果本书没有回答您的问题,并且您认为其答案属于本书的范围,请随时提交问题或在 Zulip 上的 t-lang/doc
流中询问。了解人们最常使用本书的哪些部分有助于我们将注意力集中在使这些部分尽可能完善。我们还希望参考尽可能规范,因此如果您发现任何错误或不规范但未明确指出的内容,也请提交问题。