运算符
本文档整理了当前编译器基础上实际可用的运算符。
算术
| 运算符 | 说明 |
|---|---|
+ | 加法 |
- | 减法 |
* | 乘法 |
/ | 除法 |
% | 余数 |
比较
| 运算符 | 说明 |
|---|---|
== | 等于 |
!= | 不等于 |
< | 小于 |
<= | 小于等于 |
> | 大于 |
>= | 大于等于 |
逻辑
| 运算符 | 说明 |
|---|---|
&& | 逻辑与 |
| \`\ | 逻辑或 |
! | 逻辑非 |
位运算
| 运算符 | 说明 |
|---|---|
& | 位与 |
| \`\ | 位或 |
^ | 位异或 |
~ | 位非 |
<< | 左移运算 |
>> | 右移运算 |
赋值
| 运算符 | 说明 |
|---|---|
= | 基本赋值 |
+= | 加法后赋值 |
-= | 减法后赋值 |
*= | 乘法后赋值 |
/= | 除法后赋值 |
%= | 余数后赋值 |
单目运算/指针/类型转换
| 运算符/关键字 | 说明 |
|---|---|
++, -- | 前缀/后缀增减 |
&x | 获取地址 |
deref p | 指针解引用 |
expr as T | 显式类型转换 |
指针运算
| 表达式 | 结果 |
|---|---|
ptr<T> + int | ptr<T> (GEP 移动) |
int + ptr<T> | ptr<T> (GEP 移动) |
ptr<T> - int | ptr<T> (GEP 移动) |
ptr<T> - ptr<T> | i64 (字节差异) |
ptr == ptr, ptr != ptr | 指针比较 |
预留或未实现项目
语法标记存在,但当前表达式操作不支持的项目存在。
例如: ??, ?:, in, is, !&, !|, ~^。