Dart 学习笔记 (五)操作符

87 阅读1分钟

操作符

优先级顺序 上面左边 优先级高于 右边下面 描述 | 操作符 | | | | ------ | ------------------------------------- | ----- | - | | 后缀操作 | expr++ expr– () [] . ?. | | | | 前缀操作 | -expr !expr ~expr ++expr –expr | | | | 乘除 | * / % ~/ | | | | 加减 | + - | | | | 位移 | << >> | | | | 按位与 | & | | | | 按位异或 | ^ | | | | 按位或 | \ | | | | 类型操作 | >= > <= < as is is! | | | | 相等 | == != | | | | 逻辑与 | && | | | | 逻辑或 | \ | \ | | | 是为为空 | ?? | | | | 三目运算 | expr1 ? expr2 : expr3 | | | | 级联 | .. | | | | 赋值 | = *= /= ~/= %= += -= <<= >>= &= ^= \ | = ??= |

算术操作符

操作符解释
+加号
减号
-expr负号
*乘号
/除号
~/除号,但是返回值为整数
%取模

相等相关的操作符

操作符解释
==相等
!=不等
大于
<小于
>=大于等于
<=小于等于

类型判定操作符

操作符解释
as类型转换
is如果对象是指定的类型返回 True
is!如果对象是指定的类型返回 False
int a = 123;
String b = 'hello';
String c = 'abc';
print(a as Object);
print(b is String);
print(c is! String);

条件表达式

操作符解释
condition ? expr1 : expr2如果 condition 是 true,执行 expr1 (并返回执行的结果); 否则执行 expr2 并返回其结果。
expr1 ?? expr2如果 expr1 是 non-null,返回其值; 否则执行 expr2 并返回其结果。
bool isFinish = true;
String txtVal = isFinish ? 'yes' : 'no';

bool isFinish;
isFinish = isFinish ?? false;
or
isFinish ??= false;

位和移位操作符

操作符解释
&逻辑与
逻辑或
逻辑异或
~expr取反
<<左移
>>右移

级联操作符

操作符解释
..可以在同一个对象上 连续调用多个函数以及访问成员变量。
StringBuffer sb = new StringBuffer();
sb
..write('hello')
..write('word')
..write('\n')
..writeln('apple');

其他操作符

操作符解释
()使用方法 代表调用一个方法
[]访问 List 访问 list 中特定位置的元素
.访问 Member 访问元素,例如 foo.bar 代表访问 foo 的 bar 成员
?.条件成员访问 和 . 类似,但是左边的操作对象不能为 null,例如 foo?.bar 如果 foo 为 null 则返回 null,否则返回 bar 成员
String a;
print(a?.length);