0
点赞
收藏
分享

微信扫一扫

rust 非运算符符号

zhaoxj0217 03-12 17:45 阅读 2

下面的列表中包含了所有和运算符不一样功能的非字符符号;也就是说,他们并不像函数调用或方法调

用一样表现。

表 B-2 展示了以其自身出现以及出现在合法其他各个地方的符号。

表 B-2:独立语法

符号 解释

’ ident 命名生命周期或循环标签

... u8, ... i32, ... f64, ... usize, 等 指定类型的数值常量

”...” 字符串常量

r ”...” , r #”...”# , r##”...”##, etc. 原始字符串字面值, 未处理的转义字符

b ”...” 字节字符串字面值; 构造一个 [u8] 类型而非字符串

br ”...” , br#”...”#, br##”...”##, 等

原始字节字符串字面值,原始和字节字符串字面值

的结合

’...’ 字符字面值

b ’...’ ASCII 码字节字面值

|⋯| expr 闭包

! 离散函数的总是为空的类型

_ ” 忽略” 模式绑定;也用于增强整型字面值的可读性

表 B-3 展示了出现在从模块结构到项的路径上下文中的符号

表 B-3:路径相关语法

580 CHAPTER 21. 附录

符号 解释

ident::ident 命名空间路径

:: path 与 crate 根相对的路径(如一个显式绝对路径)

self :: path 与当前模块相对的路径(如一个显式相对路径)

super::path 与父模块相对的路径

type::ident, <type as trait >::ident 关联常量、函数以及类型

<type >::... 不可以被直接命名的关联项类型(如 <&T >::...,

<[T ]>::... ,等)

trait :: method(...) 通过命名定义的 trait 来消除方法调用的二义性

type::method(...) 通过命名定义的类型来消除方法调用的二义性

<type as trait >::method(...) 通过命名 trait 和类型来消除方法调用的二义性

表 B-4 展示了出现在泛型类型参数上下文中的符号。

表 B-4:泛型

符号 解释

path<...> 为一个类型中的泛型指定具体参数(如 Vec<u8>)

path ::<...> , method::<...> 为一个泛型、函数或表达式中的方法指定具体参数,

通常指 turbofish(如 ”42”.parse::<i32>())

fn ident<...> ... 泛型函数定义

struct ident<...> ... 泛型结构体定义

enum ident<...> ... 泛型枚举定义

impl<...> ... 定义泛型实现

for <...> type 高级生命周期限制

type<ident=type> 泛型,其一个或多个相关类型必须被指定为特定类

型(如 Iterator<Item=T>)

表 B-5 展示了出现在使用 trait bounds 约束泛型参数上下文中的符号。

表 B-5: Trait Bound 约束

符号 解释

T: U 泛型参数 T 约束于实现了 U 的类型

T: ’ a 泛型 T 的生命周期必须长于 ’ a(意味着该类型不能

传递包含生命周期短于 ’ a 的任何引用)

T: ’ static 泛型 T 不包含除 ’static 之外的借用引用

’ b: ’ a 泛型 ’ b 生命周期必须长于泛型 ’ a

T: ?Sized 使用一个不定大小的泛型类型

’ a + trait, trait + trait 复合类型限制

表 B-6 展示了在调用或定义宏以及在其上指定属性时的上下文中出现的符号。

表 B-6: 宏与属性

符号 解释

#[meta] 外部属性

#![meta] 内部属性

$ident 宏替换

$ident:kind 宏捕获

$(⋯)⋯ 宏重复

ident !(...) , ident !{...} , ident ![...] 宏调用

21.2. 附录 B:运算符与符号 581

表 B-7 展示了写注释的符号。

表 B-7: 注释

符号 注释

∕∕ 行注释

∕∕! 内部行文档注释

∕∕∕ 外部行文档注释

∕*...*∕ 块注释

∕*!...*∕ 内部块文档注释

∕**...*∕ 外部块文档注释

表 B-8 展示了出现在使用元组时上下文中的符号。

表 B-8: 元组

符号 解释

() 空元组(亦称单元),即是字面值也是类型

(expr) 括号表达式

(expr,) 单一元素元组表达式

(type,) 单一元素元组类型

(expr, ...) 元组表达式

(type, ...) 元组类型

expr(expr, ...) 函数调用表达式;也用于初始化元组结构体 struct

以及元组枚举 enum 变体

expr.0, expr.1, etc. 元组索引

表 B-9 展示了使用大括号的上下文。

表 B-9: 大括号

符号 解释

{...} 块表达式

Type {...} struct 字面值

表 B-10 展示了使用方括号的上下文。

表 B-10: 方括号

符号 解释

[...] 数组

[expr; len] 复制了 len个 expr的数组

[type; len] 包含 len个 type 类型的数组

expr[expr] 集合索引。重载(Index, IndexMut)

expr [..], expr[a..], expr [..b], expr[a..b] 集合索引,使用 Range,RangeFrom,RangeTo

或 RangeFull 作为索引来代替集合 slice

举报

相关推荐

0 条评论