语法索引 in Rust
发布于 10 天前 作者 yutiansut 33 次浏览 来自 文档

关键词(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 : 循环, impl trait 语法的一部分,和高级生命周期语法。详见循环 (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 必须超过声明周期 'a T: ?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 作 为“索引”。

回到顶部