02-语法索引

语法索引 — The Rust Reference

译文 · 基于 The Rust Reference

原文链接: https://doc.rust-lang.org/reference/syntax-index.html

语法索引

本附录提供 token 与常见形式的索引,并链接到这些元素的定义处。

关键字

关键字用途
_通配符模式、推断的常量、推断的类型、占位生命周期、常量项、extern crate、use 声明、解构赋值
abstract保留关键字
as[extern crate][items.extern-crate.as]、[use 声明][items.use.forms.as]、类型强制转换表达式、限定路径
asyncasync 函数、async 块、async 闭包
awaitawait 表达式
become保留关键字
box保留关键字
breakbreak 表达式
const常量函数、常量项、常量泛型、const 块、裸借用运算符、裸指针类型、常量汇编操作数
continuecontinue 表达式
crateextern crate、可见性、[路径][paths]
do保留关键字
dyntrait 对象
elselet 语句、if 表达式
enum枚举
externextern crate、extern 函数限定符、外部块、extern 函数指针类型
false布尔类型、布尔表达式、配置谓词
final保留关键字
fn函数、函数指针类型
fortrait 实现、迭代器循环、高阶 trait 约束
gen保留关键字
ifif 表达式、match 守卫
impl固有 impl、trait impl、impl trait 类型、匿名类型参数
in可见性、迭代器循环、汇编操作数
letlet 语句、if let 模式
loop无限循环
macro_rules示例宏
macro保留关键字
matchmatch 表达式
mod模块
move闭包表达式、async 块
mut借用表达式、标识符模式、引用模式、结构体模式、引用类型、裸指针类型、self 参数、静态项
override保留关键字
priv保留关键字
pub可见性
raw借用表达式、裸汇编
ref标识符模式、结构体模式
returnreturn 表达式
safe外部块函数、外部块静态项
self[extern crate][items.extern-crate.self]、self 参数、可见性、self 路径
SelfSelf 类型路径、use 约束
static静态项、'static 生命周期
struct结构体
supersuper 路径、可见性
traittrait 项
true布尔类型、布尔表达式、配置谓词
try保留关键字
type类型别名
typeof保留关键字
union联合体项
unsafe不安全块、不安全属性、不安全模块、不安全函数、不安全外部块、不安全外部函数、不安全外部静态项、不安全 trait、不安全 trait 实现
unsized保留关键字
useuse 项、use 约束
virtual保留关键字
wherewhere 子句
while谓词循环
yield保留关键字

运算符与标点

符号名称用途
+Plus加法、trait 约束、宏 Kleene matcher
-Minus减法、取反
*Star乘法、解引用、裸指针、宏 Kleene matcher、glob 导入
/Slash除法
%Percent取余
^Caret按位与逻辑 XOR
!Not按位与逻辑 NOT、宏调用、[内部属性][attributes]、永不类型、否定 impl
&And按位与逻辑 AND、借用、引用、引用模式
|Or按位与逻辑 OR、闭包、或模式、if let、while let
&&AndAnd惰性 AND、借用、引用、引用模式
||OrOr惰性 OR、闭包
<<Shl左移、嵌套泛型
>>Shr右移、嵌套泛型
+=PlusEq加法赋值
-=MinusEq减法赋值
*=StarEq乘法赋值
/=SlashEq除法赋值
%=PercentEq取余赋值
^=CaretEq按位 XOR 赋值
&=AndEq按位 AND 赋值
|=OrEq按位 OR 赋值
<<=ShlEq左移赋值
>>=ShrEq右移赋值、嵌套泛型
=Eq赋值、let 语句、[属性][attributes]、各种类型定义
==EqEq等于
!=Ne不等于
>Gt大于、泛型、[路径][paths]、use 约束
<Lt小于、泛型、[路径][paths]、use 约束
>=Ge大于或等于、泛型
<=Le小于或等于
@At子模式绑定
.Dot字段访问、元组索引、方法调用、await 表达式
..DotDot[范围表达式][expr.range]、结构体表达式、剩余模式、范围模式、结构体模式
...DotDotDot可变参数函数、范围模式
..=DotDotEq[闭区间范围表达式][expr.range]、范围模式
,Comma各种分隔符
;Semi各种项与语句的终止符、数组表达式、数组类型
:Colon各种分隔符
::PathSep[路径分隔符][paths]
->RArrow函数、闭包、函数指针类型
=>FatArrowmatch 分支、宏
<-LArrow左箭头符号自 Rust 1.0 之前就未再使用,但仍被当作单个 token。
#Pound[属性][attributes]、原始字符串字面量、原始字节字符串字面量、原始 C 字符串字面量
$Dollar宏
?Questiontry 传播表达式、宽松 trait 约束、宏 Kleene matcher
~Tilde波浪号运算符自 Rust 1.0 之前就未再使用,但其 token 仍可能被使用。

注释

注释用途
//[行注释][comments]
//![内部行注释][comments]
///[外部行文档注释][comments]
/*…*/[块注释][comments]
/*!…*/[内部块文档注释][comments]
/**…*/[外部块文档注释][comments]

其他 token

Token用途
ident标识符
r#ident原始标识符
'ident生命周期与循环标签
'r#ident原始生命周期与循环标签
…u8, …i32, …f64, …usize, …数字字面量
"…"字符串字面量
r"…", r#"…"#, r##"…"##, …原始字符串字面量
b"…"字节字符串字面量
br"…", br#"…"#, br##"…"##, …原始字节字符串字面量
'…'字符字面量
b'…'字节字面量
c"…"C 字符串字面量
cr"…", cr#"…"#, cr##"…"##, …原始 C 字符串字面量

宏

语法用途
ident!(…)
ident! {…}
ident![…]
宏调用
$ident宏元变量
$ident:kind宏 matcher fragment specifier
$(…)…宏重复

属性

语法用途
#[meta]外部属性
#![meta]内部属性

表达式

表达式用途
|…| expr
|…| -> Type { … }
闭包
ident::…[路径][paths]
::crate_name::…显式 crate 路径
crate::…crate 相对路径
self::…模块相对路径
super::…父模块路径
Type::…
<Type as Trait>::ident
关联项
<Type>::…可用于无名称类型(如 <&T>::…、<[T]>::… 等)的限定路径
Trait::method(…)
Type::method(…)
<Type as Trait>::method(…)
消歧义的方法调用
method::<…>(…)
path::<…>
泛型实参,即 turbofish
()单元
(expr)括号表达式
(expr,)单元素元组表达式
(expr, …)元组表达式
expr(expr, …)调用表达式
expr.0, expr.1, …元组索引表达式
expr.ident字段访问表达式
{…}块表达式
Type {…}结构体表达式
Type(…)元组结构体构造函数
[…]数组表达式
[expr; len]重复数组表达式
expr[..], expr[a..], expr[..b], expr[a..b], expr[a..=b], expr[..=b]数组与切片索引表达式
if expr {…} else {…}if 表达式
match expr { pattern => {…} }match 表达式
loop {…}无限循环表达式
while expr {…}谓词循环表达式
for pattern in expr {…}迭代器循环
&expr
&mut expr
借用表达式
&raw const expr
&raw mut expr
裸借用表达式
*expr解引用表达式
expr?try 传播表达式
-expr取反表达式
!expr按位与逻辑 NOT 表达式
expr as Type类型强制转换表达式

项

[项][Items] 是 crate 的组成部分。

项用途
mod ident;
mod ident {…}
模块
use path;use 声明
fn ident(…) {…}函数
type Type = Type;类型别名
struct ident {…}结构体
enum ident {…}枚举
union ident {…}联合体
trait ident {…}trait
impl Type {…}
impl Type for Trait {…}
实现
const ident = expr;常量项
static ident = expr;静态项
extern "C" {…}外部块
fn ident<…>(…) …
struct ident<…> {…}
enum ident<…> {…}
impl<…> Type<…> {…}
泛型定义

类型表达式

类型表达式 用于引用类型。

类型用途
bool, u8, f64, str, …原语类型
for<…>高阶 trait 约束
T: TraitA + TraitBtrait 约束
T: 'a + 'b生命周期约束
T: TraitA + 'atrait 与生命周期约束
T: ?Sized宽松 trait 约束
[Type; len]数组类型
(Type, …)元组类型
[Type]切片类型
(Type)括号类型
impl Traitimpl trait 类型、匿名类型参数
dyn Traittrait 对象类型
ident
ident::…
类型路径(可引用结构体、枚举、联合体、类型别名、trait、泛型等)
Type<…>
Trait<…>
泛型实参(例如 Vec<u8>)
Trait<ident = Type>关联类型绑定(例如 Iterator<Item = T>)
Trait<ident: …>关联类型约束(例如 Iterator<Item: Send>)
&Type
&mut Type
引用类型
*mut Type
*const Type
裸指针类型
fn(…) -> Type函数指针类型
_推断的类型、推断的常量
'_占位生命周期
!永不类型

模式

[模式][Patterns] 用于匹配值。

模式用途
"foo", 'a', 123, 2.4, …字面量模式
ident标识符模式
_通配符模式
..剩余模式
a.., ..b, a..b, a..=b, ..=b范围模式
&pattern
&mut pattern
引用模式
path {…}结构体模式
path(…)元组结构体模式
(pattern, …)元组模式
(pattern)分组模式
[pattern, …]切片模式
CONST, Enum::Variant, …路径模式
最后修改 August 21, 2026: 更新 (76fc81a2e)