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