附录B:运算符和符号
本附录包含了Cairo语法的词汇表。
运算符
表B-1包含了开罗的运算符,运算符在上下文中出现的例子和简短的解释,以及该运算符是否可以重载。如果一个运算符是可重载的,则列出了用于重载该运算符的相关特性。
运算符 | 示例 | 解释 | 是否可重载? |
---|---|---|---|
! | !expr | 位或逻辑补码 | Not |
!= | expr != expr | 不等于 | PartialEq |
% | expr % expr | 算数取余 | Rem |
%= | var %= expr | 算数取余并赋值 | RemEq |
& | expr & expr | 按位与 | BitAnd |
&& | expr && expr | 短路逻辑与 | |
* | expr * expr | 算数乘 | Mul |
*= | var *= expr | 算数乘并赋值 | MulEq |
@ | @var | Snapshot | |
* | *var | Desnap | |
+ | expr + expr | 算术加 | Add |
+= | var += expr | 算数加并赋值 | AddEq |
, | expr, expr | 参数和元素分隔符 | |
- | -expr | 算数负号 | Neg |
- | expr - expr | 算数减 | Sub |
-= | var -= expr | 算数减并赋值 | SubEq |
-> | fn(...) -> type , |...| -> type | 函数与闭包的返回类型 | |
. | expr.ident | 成员访问 | |
/ | expr / expr | 算数除 | Div |
/= | var /= expr | 算数除并赋值 | DivEq |
: | pat: type , ident: type | 约束条件 | |
: | ident: expr | 结构体字段初始化器 | |
; | expr; | 语句和条目结束符号 | |
< | expr < expr | 小于比较 | PartialOrd |
<= | expr <= expr | 小于等于比较 | PartialOrd |
= | var = expr | 赋值 | |
== | expr == expr | 等于比较 | PartialEq |
=> | pat => expr | 匹配分支的一部分语法 | |
> | expr > expr | 大于比较 | PartialOrd |
>= | expr >= expr | 大于等于比较 | PartialOrd |
^ | expr ^ expr | 按位异或 | BitXor |
| | expr | expr | 按位或 | BitOr |
|| | expr || expr | 短路逻辑或 |
非运算符符号
下面的列表包含了所有不作为运算符使用的符号;也就是说,他们并不像函数调用或方法调用一样表现。
表B-2 展示了以其自身出现以及出现在合法其他各个地方的符号。
符号 | 解释 |
---|---|
..._u8 , ..._usize , 等等。 | 指定类型的数值常量 |
'...' | 短字符串 |
_ | "“忽略” 模式绑定;也用于增强整型字面值的可读性 |
表B-3 展示了出现在从模块结构到项的路径上下文中的符号。
符号 | 解释 |
---|---|
ident::ident | 命名空间路径 |
super::path | 相对于当前模块的父级路径。 |
trait::method(...) | 通过命名定义该方法的trait来消除方法调用的二义性 |
表B-4 展示了出现在泛型类型参数上下文中的符号。
符号 | 解释 |
---|---|
path<...> | 为一个类型中的泛型指定具体参数(例如,Vec<u8> ) |
path::<...> , method::<...> | 为一个泛型、函数或表达式中的方法指定具体参数; 通常被称为Turbofish。 |
fn ident<...>... | 泛型函数定义 |
struct ident<...>... | 泛型结构体定义 |
enum ident<...>... | 泛型枚举定义 |
impl<...>... | 定义泛型实现 |
表B-5展示了在调用或定义宏以及在其上指定属性时的上下文中出现的符号。
符号 | 解释 |
---|---|
#[meta] | 外部属性 |
表B-6 展示了创建注释的符号。
符号 | 解释 |
---|---|
// | 行注释 |
表B-7 展示了出现在使用元组时上下文中的符号。
符号 | 解释 |
---|---|
() | 空元组(又称单元),空元组(亦称单元),即是字面值也是类型 |
(expr) | 括号表达式 |
(expr,) | 单元素元组表达式 |
(type,) | 单元素元组类型 |
(expr, ...) | 元组表达式 |
(type, ...) | 元组类型 |
expr(expr, ...) | 函数调用表达式;也用于初始化元组struct 和元组enum 变体 |
表B-8展示了使用大括号的上下文。
上下文 | 解释 |
---|---|
{...} | 块表达式 |
Type {...} | struct 字面值 |