Rust 程序设计语言 中文版

 主页   资讯   文章   代码   电子书 

语法索引

关键词(Keywords)

  • as: 原始的类型转换。详见[类型转换(as)](Casting Between Types 类型转换.md)。
  • break: 退出循环。详见[循环(提早结束迭代)](Loops 循环.md)。
  • const: 常量和常量裸指针。详见[conststatic](const and static.md),[裸指针](Raw Pointers 裸指针.md)。
  • continue: 继续进行下一次迭代。详见[循环(提早结束迭代)](Loops 循环.md)。
  • crate: 外部 crate 链接。详见[crate 和模块(导入外部 crate)](Crates and Modules crate 和模块.md)。
  • else: ifif 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: 循环,impltrait 语法的一部分,和高级生命周期语法。详见[循环(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: 通过引用绑定。详见[模式(refref mut)](Patterns 模式.md)。
  • return: 从函数返回。详见[函数(提前返回)](Functions 函数.md)。
  • Self: (trait)实现者类型的别名。详见Traits
  • self: 方法的主体。详见[方法语法(方法调用)](Method Syntax 方法语法.md)。
  • static: 全局变量。详见[conststaticstatic)](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]: 包含exprlen次拷贝的数组常量。详见[原生类型(数组)](Primitive Types 原生类型.md)。
  • [type; len]: 包含lentype实例的数组类型。详见[原生类型(数组)](Primitive Types 原生类型.md)。
  • expr[expr]: 集合索引。可重载(IndexIndexMut)。
  • expr[..], expr[a..], expr[..b], expr[a..b]: 用来生成集合切片的集合索引,分别使用RangeRangeFromRangeToRangeFull作为“索引”。