常见编程概念
本章介绍一些几乎所有编程语言都有的概念,以及它们在 Rust 中是如何工作的。很多编程语言的核心概念都是共通的,本章中展示的概念都不是 Rust 所特有的,不过我们会在 Rust 上下文中讨论它们,并解释使用这些概念的惯例。
具体来说,我们将会学习变量、基本类型、函数、注释和控制流。每一个 Rust 程序中都会用到这些基础知识,提早学习这些概念会让你在起步时就打下坚实的基础。
附录(关键字)
Rust 语言有一组保留的 关键字(keywords),就像大部分语言一样,它们只能由语言本身使用。记住,你不能使用这些关键字作为变量或函数的名称。大部分关键字有特殊的意义,你将在 Rust 程序中使用它们完成各种任务;一些关键字目前没有相应的功能,是为将来可能添加的功能保留的。
下面的列表包含 Rust 中正在使用或者将来会用到的关键字。因此,这些关键字不能被用作标识符(除了 “原始标识符” 部分介绍的原始标识符),这包括函数、变量、参数、结构体字段、模块、crate、常量、宏、静态值、属性、类型、trait 或生命周期 的名字。
目前正在使用的关键字
如下为目前正在使用的关键字及其功能描述的列表。
as
- 原始类型转换,消除特定包含项的 trait 的歧义,或者对 use 语句中的项重命名async
- 返回一个 Future 而不是阻塞当前线程await
- 暂停执行直到 Future 的结果就绪break
- 立刻退出循环const
- 定义常量或常量裸指针(constant raw pointer)continue
- 继续进入下一次循环迭代crate
- 在模块路径中,代指 crate rootdyn
- 动态分发 trait 对象else
- 作为 if 和 if let 控制流结构的 fallbackenum
- 定义一个枚举extern
- 链接一个外部函数或变量false
- 布尔字面值 falsefn
- 定义一个函数或 函数指针类型 (function pointer type)for
- 遍历一个迭代器或实现一个 trait 或者指定一个更高级的生命周期if
- 基于条件表达式的结果分支impl
- 实现自有或 trait 功能in
- for 循环语法的一部分let
- 绑定一个变量loop
- 无条件循环match
- 模式匹配mod
- 定义一个模块move
- 使闭包获取其所捕获项的所有权mut
- 表示引用、裸指针或模式绑定的可变性pub
- 表示结构体字段、impl 块或模块的公有可见性ref
- 通过引用绑定return
- 从函数中返回Self
- 定义或实现 trait 的类型的类型别名self
- 表示方法本身或当前模块static
- 表示全局变量或在整个程序执行期间保持其生命周期struct
- 定义一个结构体super
- 表示当前模块的父模块trait
- 定义一个 traittrue
- 布尔字面值 truetype
- 定义一个类型别名或关联类型union
- 定义一个 union;仅在 union 声明中作为关键字unsafe
- 表示不安全的代码、函数、trait 或实现use
- 将符号引入作用域;为泛型和生命周期约束指定精确捕获where
- 表示一个约束类型的从句while
- 根据表达式的结果进行条件循环
为将来使用保留的关键字
以下关键字目前尚无任何功能,但已被 Rust 保留以备将来使用。
abstract
become
box
do
final
gen
macro
override
priv
try
typeof
unsized
virtual
yield