Flutter学习笔记——Dart运算符优先级
运算符优先级从高到低
运算符类型 | 运算符 |
---|---|
后缀运算符 | expr++ 、expr-- 、() 、[] 、. 、?. |
前缀运算符 | -expr 、!expr 、~expr 、++expr 、--expr 、await expr |
乘法运算符 | * 、/ 、% 、~/ |
加法运算符 | + 、- |
位移运算符 | << 、>> 、>>> |
位与运算符 | & |
位异或运算符 | ^ |
位或运算符 | | |
关系和类型测试运算符 | >= 、> 、<= 、< 、as 、is 、is! |
相等运算符 | == 、!= |
逻辑与运算符 | && |
逻辑或运算符 | ` |
空值合并运算符 | ?? |
条件运算符 | expr1?expr2:expr3 |
赋值运算符 | = 、*= 、/= 、%= 、+= 、-= 、<<= 、>>= 、&= 、^= 、|= 、??= |
易错表达式
a??0 + 1
,容易理解成(a??0) + 1
。实际结果因为+
号优先级比??
高,所以应该是a??(0 + 1)