语法索引
关键词(Keywords)
as
: 原始的类型转换。详见[类型转换(as
)](Casting Between Types 类型转换.md)。
break
: 退出循环。详见[循环(提早结束迭代)](Loops 循环.md)。
const
: 常量和常量裸指针。详见[const
和static
](const
and static
.md),[裸指针](Raw Pointers 裸指针.md)。
continue
: 继续进行下一次迭代。详见[循环(提早结束迭代)](Loops 循环.md)。
crate
: 外部 crate 链接。详见[crate 和模块(导入外部 crate)](Crates and Modules crate 和模块.md)。
else
: if
和if let
的失败分支。详见if
(If If语句.md),if let
(if let.md)。
enum
: 定义枚举。详见[枚举](Enums 枚举.md)。
extern
: 外部 crate,函数,和变量链接。详见[crate 和模块(导入外部 crate)](Crates and Modules crate 和模块.md),[外部函数接口](Foreign Function Interface 外部函数接口.md)。
false
: 布尔值 false 常量。详见[原生类型(布尔型)](Primitive Types 原生类型.md)。
fn
: 函数定义和函数指针类型。详见[函数](Functions 函数.md)。
for
: 循环,impl
trait 语法的一部分,和高级生命周期语法。详见[循环(for)](Loops 循环.md),[方法语法](Method Syntax 方法语法.md)。
if
: 条件分支。详见if
(If If语句.md),if let
(if let.md)。
impl
: 继承和 trait 实现块。详见[方法语法](Method Syntax 方法语法.md)。
in
: for
循环语法的一部分。详见[循环(for)](Loops 循环.md)。
let
: 变量绑定。详见[变量绑定](Variable Bindings 变量绑定.md)。
loop
: 无条件的无限循环。详见[循环(loop)](Loops 循环.md)。
match
: 模式匹配。详见[匹配](Match 匹配.md)。
mod
: 模块声明。详见[crate 和模块(定义模块)](Crates and Modules crate 和模块.md)。
move
: 闭包语法的一部分。详见[闭包(move
闭包)](Closures 闭包.md)。
mut
: 表示指针类型和模式绑定的可变性。详见[可变性](Mutability 可变性.md)。
pub
: 表示struct
字段,impl
块和模块的共有可见性。详见[crate 和模块(导出共有接口)](Crates and Modules crate 和模块.md)。
ref
: 通过引用绑定。详见[模式(ref
和ref mut
)](Patterns 模式.md)。
return
: 从函数返回。详见[函数(提前返回)](Functions 函数.md)。
Self
: (trait)实现者类型的别名。详见Traits。
self
: 方法的主体。详见[方法语法(方法调用)](Method Syntax 方法语法.md)。
static
: 全局变量。详见[const
和static
(static
)](const
and static
.md)。
struct
: 结构体定义。详见[结构体](Structs 结构体.md)。
trait
: trait 定义。详见Traits。
true
: 布尔值 true 常量。详见[原生类型(布尔型)](Primitive Types 原生类型.md)。
type
: 类型别名和关联类型定义。详见[type
别名](type
Aliases type
别名.md),[关联类型](Associated Types 关联类型.md)。
unsafe
: 表示不安全代码,函数,trait 和其实现。详见[不安全代码](unsafe
不安全代码.md)。
use
: 向作用域导入符号。详见[crate 和模块(使用use
从模块导入)](Crates and Modules crate 和模块.md)。
where
: 类型限制从句。详见Traits(where
从句)。
while
: 条件循环。详见[循环(while
)](Loops 循环.md)。
运算符和记号
!
(ident!(…)
, ident!{…}
, ident![…]
): 表示宏扩展。详见[宏](Macros 宏.md)。
!
(!expr
): 位计算或逻辑互补。可重载(Not
)。
!=
(var != expr
): 不等。可重载(PartialEq
)。
%
(expr % expr
): 算数取余。可重载(Rem
)。
%=
(var %= expr
): 算数取余并赋值。
&
(expr & expr
): 位计算和。可重载(BitAnd
)。
&
(&expr
): 借用。详见[引用和借用](References and Borrowing 引用和借用.md)。
&
(&type
, &mut type
, &'a type
, &'a mut type
): 借用指针类型。详见[引用和借用](References and Borrowing 引用和借用.md)。
&=
(var &= expr
): 位计算和并赋值。
&&
(expr && expr
): 逻辑和。
*
(expr * expr
): 算数乘法。可重载(Mul
)。
*
(*expr
): 解引用。
*
(*const type
, *mut type
): 裸指针。详见[裸指针](Raw Pointers 裸指针.md)。
*=
(var *= expr
): 算数乘法并赋值。
+
(expr + expr
): 算数加法。可重载(Add
)。
+
(trait + trait
, 'a + trait
): 复合类型限制。详见Traits(多个 trait bound)。
+=
(var += expr
): 算数加法并赋值。
,
: 参数和元素分隔符。详见[属性](Attributes 属性.md),[函数](Functions 函数.md),[结构体](Structs 结构体.md),[泛型](Generics 泛型.md),[匹配](Match 匹配.md),[闭包](Closures 闭包.md)和[crate 和模块(使用use
从模块导入)](Crates and Modules crate 和模块.md)。
-
(expr - expr
): 算数减法。可重载(Sub
)。
-
(- expr
): 算数取反。可重载(Neg
)。
-=
(var -= expr
): 算数减法并赋值。
->
(fn(…) -> type
, |…| -> type
): 函数和闭包的返回值类型。详见[函数](Functions 函数.md),[闭包](Closures 闭包.md)。
-> !
(fn(…) -> !
, |…| -> !
): 发散函数或闭包。详见[发散函数](Functions 函数.md)
.
(expr.ident
): 访问方法。详见[结构体](Structs 结构体.md),[方法语法](Method Syntax 方法语法.md)。
..
(..
, expr..
, ..expr
, expr..expr
): 右开区间的范围常量
..
(..expr
): 结构体常量更新语法。详见[结构体(更新语法)](Structs 结构体.md)。
..
(variant(x, ..)
, struct_type { x, .. }
): “余下的”模式绑定。详见[模式(忽略绑定)](Patterns 模式.md)。
...
(expr ... expr
): 闭区间范围模式。详见[模式(范围)](Patterns 模式.md)。
/
(expr / expr
): 算数除法。可重载(Div
)。
/=
(var /= expr
): 算数除法并赋值。
:
(pat: type
, ident: type
): 限制。详见[变量绑定](Variable Bindings 变量绑定.md),[函数](Functions 函数.md),[](Structs 结构体.md)
:
(ident: expr
): 结构体字段初始化。详见[结构体](Structs 结构体.md)。
:
('a: loop {…}
): 循环标签。详见[循环(循环标签)](Loops 循环.md)
;
: 语句和项终结符。
;
([…; len]
): 定长数组语法的一部分。详见[原生类型(数组)](Primitive Types 原生类型.md)。
<<
(expr << expr
): 左移。可重载(Shl
)。
<<=
(var <<= expr
): 左移并赋值。
<
(expr < expr
): 小于。可重载(PartialOrd
)。
<=
(var <= expr
): 小于。可重载(PartialOrd
)。
=
(var = expr
, ident = type
): 赋值 / 等价。详见[变量绑定](Variable Bindings 变量绑定.md),[type
别名](type
Aliases type
别名.md),默认泛型参数。
==
(var == expr
): 相等。可重载(PartialEq
)。
=>
(pat => expr
): 匹配分支语法的一部分。详见[匹配](Match 匹配.md)。
>
(expr > expr
): 大于。可重载(PartialOrd
)。
>=
(var >= expr
): 大于。可重载(PartialOrd
)。
>>
(expr >> expr
): 右移。可重载(Shr
)。
>>=
(var >>= expr
): 右移并赋值。
@
(ident @ pat
): 模式绑定。详见[模式(绑定)](Patterns 模式.md)。
^
(expr ^ expr
): 位计算异或。可重载(BitXor
)。
^=
(var ^= expr
): 位计算异或并赋值。
|
(expr | expr
): 位计算或。可重载(BitOr
)。
|
(pat | pat
): 另外的模式。详见[模式(多个模式)](Patterns 模式.md)。
|
(|…| expr
): 闭包。详见[闭包](Closures 闭包.md)。
|=
(var |= expr
): 位计算或并赋值。
||
(expr || expr
): 逻辑或。
_
: “忽略”的模式匹配。详见[模式(忽略绑定)](Patterns 模式.md)。
其他语法
'ident
: 命名的生命周期或循环标签。详见[模式(绑定)](Patterns 模式.md)。
…u8
, …i32
, …f64
, …usize
, …: 特定类型的数字常量。
"…"
: 字符串常量。详见[字符串](Strings 字符串.md)。
r"…"
, r#"…"#
, r##"…"##
, …: 原始字符串常量,转义字符不会被处理。详见参考手册(原始字符串常量)。
b"…"
: 字节字符串常量,生成一个[u8]
而不是一个字符串。详见参考手册(字节字符串常量)。
br"…"
, br#"…"#
, br##"…"##
, …: 原始字节字符串常量,原始和字节字符串常量的组合。详见参考手册(原始字节字符串常量)。
'…'
: 字符常量。详见[原生类型(char
)](Primitive Types 原生类型.md)。
b'…'
: ASCII 字节常量。
|…| expr
: 闭包。详见[闭包](Closures 闭包.md)。
ident::ident
: 路径。详见[crate 和模块(定义模块)](Crates and Modules crate 和模块.md)。
::path
: 相对 crate 根的路径(也就是说,一个明确的绝对路径)。详见[crate 和模块(pub use
重导出)](Crates and Modules crate 和模块.md)。
self::path
: 相对当前模块的路径(也就是说,一个明确的相对路径)。详见[crate 和模块(pub use
重导出)](Crates and Modules crate 和模块.md)。
super::path
: 相对当前模块父模块的路径。详见[crate 和模块(pub use
重导出)](Crates and Modules crate 和模块.md)。
type::ident
: 关联常量,函数和类型。详见[关联类型](Associated Types 关联类型.md)。
<type>::…
: 一个不能直接命名的类型的关联项(例如,<&T>::…
,<[T]>::…
等)。详见[关联类型](Associated Types 关联类型.md)。
path<…>
(e.g. Vec<u8>
): 用类型指定泛型的参数类型。详见[泛型](Generics 泛型.md)。
path::<…>
, method::<…>
(e.g. "42".parse::<i32>()
): 用表达式指定泛型类型,函数或方法的参数。
fn ident<…> …
: 定义泛型函数。详见[泛型](Generics 泛型.md)。
struct ident<…> …
: 定义泛型结构体。详见[泛型](Generics 泛型.md)。
enum ident<…> …
: 定义泛型枚举。详见[泛型](Generics 泛型.md)。
impl<…> …
: 定义泛型实现。
for<…> type
: 高级生命周期 bound。
type<ident=type>
(e.g. Iterator<Item=T>
): 一个泛型类型,它有一个或多个有特定赋值的关联类型。详见[关联类型](Associated Types 关联类型.md)。
T: U
: 泛型参数T
被限制为实现了U
的类型。详见Traits。
T: 'a
: 泛型类型T
必须超过声明周期'a
'b: 'a
: 泛型生命周期'b
必须超过声明周期'a
T: ?Sized
: 允许泛型类型是一个不定长度类型。详见[不定长类型](Unsized Types 不定长类型.md)。
'a + trait
, trait + trait
: 复合类型限制。详见Traits(多个 trait bound)
#[meta]
: 外部属性。详见[属性](Attributes 属性.md)。
#![meta]
: 内部属性。详见[属性](Attributes 属性.md)。
$ident
: 宏替代(部分)。详见[宏](Macros 宏.md)。
$ident:kind
: 宏 capture。详见[宏](Macros 宏.md)。
$(…)…
: 宏重复(部分)。详见[宏](Macros 宏.md)。
//
: 行注释。详见[注释](Comments 注释.md)。
//!
: 内部行文档注释。详见[注释](Comments 注释.md)。
///
: 外部行文档注释。详见[注释](Comments 注释.md)。
/*…*/
: 块注释。详见[注释](Comments 注释.md)。
/*!…*/
: 内部块文档注释。详见[注释](Comments 注释.md)。
/**…*/
: 内部块文档注释。详见[注释](Comments 注释.md)。
()
: 空元组(也就是单元),常量和类型。
(expr)
: 自带括号的表达式。
(expr,)
: 单元素元组表达式。详见[原生类型(元组)](Primitive Types 原生类型.md)。
(type,)
: 单元素元组类型。详见[原生类型(元组)](Primitive Types 原生类型.md)。
(expr, …)
: 元组类型。详见[原生类型(元组)](Primitive Types 原生类型.md)。
(type, …)
: 元组类型。详见[原生类型(元组)](Primitive Types 原生类型.md)。
expr(expr, …)
: 函数调用表达式。也用于初始化元组struct
和元组enum
变量。详见[函数](Functions 函数.md)。
ident!(…)
, ident!{…}
, ident![…]
: 宏调用。详见[宏](Macros 宏.md)。
expr.0
, expr.1
, …: 元组索引。详见[原生类型(元组索引)](Primitive Types 原生类型.md)。
{…}
: 表达式块
Type {…}
: struct
常量。详见[结构体](Structs 结构体.md)。
[…]
: 数组常量。详见[原生类型(数组)](Primitive Types 原生类型.md)。
[expr; len]
: 包含expr
的len
次拷贝的数组常量。详见[原生类型(数组)](Primitive Types 原生类型.md)。
[type; len]
: 包含len
个type
实例的数组类型。详见[原生类型(数组)](Primitive Types 原生类型.md)。
expr[expr]
: 集合索引。可重载(Index
,IndexMut
)。
expr[..]
, expr[a..]
, expr[..b]
, expr[a..b]
: 用来生成集合切片的集合索引,分别使用Range
,RangeFrom
,RangeTo
,RangeFull
作为“索引”。