ffcfa412创建于 2025年7月30日历史提交

操作符

下表列出了仓颉支持的所有操作符的优先级及结合性,其中优先级一栏数值越小,对应操作符的优先级越高。

操作符 优先级 含义 示例 结合方向
@ 0 宏调用 @id 右结合
. 1 成员访问 expr.id 左结合
[] 1 索引 expr[expr] 左结合
() 1 函数调用 expr(expr) 左结合
++ 2 自增 var++
-- 2 自减 var--
? 2 问号 expr?.id, expr?[expr], expr?(expr), expr?{expr}
! 3 按位求反、逻辑非 !expr 右结合
- 3 一元负号 -expr 右结合
** 4 幂运算 expr ** expr 右结合
*, / 5 乘法,除法 expr * expr, expr / expr 左结合
% 5 取模 expr % expr 左结合
+, - 6 加法,减法 expr + expr, expr - expr 左结合
<< 7 按位左移 expr << expr 左结合
>> 7 按位右移 expr >> expr 左结合
.. 8 左闭右开区间操作符 expr..expr
..= 8 左闭右闭区间操作符 expr..=expr
< 9 小于 expr < expr
<= 9 小于等于 expr <= expr
> 9 大于 expr > expr
>= 9 大于等于 expr >= expr
is 9 类型检查 expr is Type
as 9 类型转换 expr as Type
== 10 判等 expr == expr
!= 10 判不等 expr != expr
& 11 按位与 expr & expr 左结合
^ 12 按位异或 expr ^ expr 左结合
| 13 按位或 expr | expr 左结合
&& 14 逻辑与 expr && expr 左结合
|| 15 逻辑或 expr || expr 左结合
?? 16 coalescing 操作符 expr ?? expr 右结合
|> 17 pipeline 操作符 id |> expr 左结合
~> 17 composition 操作符 expr ~> expr 左结合
= 18 赋值 id = expr
**= 18 复合运算符 id **= expr
*= 18 复合运算符 id *= expr
/= 18 复合运算符 id /= expr
%= 18 复合运算符 id %= expr
+= 18 复合运算符 id += expr
-= 18 复合运算符 id -= expr
<<= 18 复合运算符 id <<= expr
>>= 18 复合运算符 id >>= expr
&= 18 复合运算符 id &= expr
^= 18 复合运算符 id ^= expr
|= 18 复合运算符 id |= expr
&&= 18 复合运算符 id &&= expr
||= 18 复合运算符 id ||= expr