Skip to content

运算符优先级 ​

Norm 的运算符具有固定语义,不能由用户重载。下表从高到低列出当前优先级草案。

级别运算符结合性
1()、[]、.、?.左
2一元 !、-、+右
3*、/、%左
4+、-左
5<、<=、>、>=、is、as不可链式
6==、!=不可链式
7&&左,短路
8`
9??右,短路
10=右
norm
Boolean accepted = ready && count > 0
Integer total = base + quantity * price

比较运算不能连续书写:

norm
0 < value < 10 // 编译错误
0 < value && value < 10 // 合法

&&、|| 和 ?? 从左到右求值并短路。赋值不是普通值表达式,不能写在条件中。存在歧义或读者需要反推优先级时,应使用括号。

块调用链沿用普通 postfix 成员调用的优先级与左结合,不引入中缀运算符。

Norm 0.25