Dart入门之操作符

操作符类型表

全文均摘录梳理自Dart中文网

描述 操作符
unary postfix expr++ expr-- () [] . ?.
unary prefix -expr !expr ~expr ++expr --expr
multiplicative * / % ~/
additive + -
shift << >>
bitwise AND &
bitwise XOR ^
bitwise OR
relational and type test >= > <= < as is is!
equality == !=
logical AND &&
logical OR ||
if null ??
conditional expr1 ? expr2 : expr3
cascade ..
assignment = *= /= ~/= %= += -= <<= >>= &= ^= ??=

算术操作符

操作符 解释 示例
+ 加号 assert(2 + 3 == 5)
- 减号 assert(3 - 2 == 1)
-expr 负号 assert(2 - 3 == -1)
* 乘号 assert(2 * 3 == 6)
/ 除号 assert(6 / 2 == 3)
~/ 除号,但是返回值为整数 assert(5 ~/ 2 == 2)
% 取模 assert(5 % 2 == 1)

类型判定的操作符

操作符 解释
as 类型转换
is 如果对象是指定的类型返回 True
is! 如果对象是指定的类型返回 False
if (emp is Person) { // Type check
    emp.firstName = 'Bob';
}
//使用 as 操作符可以简化上面的代码:
(emp as Person).firstName = 'Bob';

注意: 上面这两个代码效果是有区别的。如果 emp 是 null 或者不是 Person 类型, 则第一个示例使用 is 则不会执行条件里面的代码,而第二个情况使用 as 则会抛出一个异常。


赋值操作符

"="表示赋值
a = value;   // 给 a 变量赋值
b ??= value; // 如果 b 是 null,则赋值给 b;如果不是 null,则 b 的值保持不变
复合赋值操作符
//以 `+=` 举例
`a += b`  等同于 ` a = a + b`

逻辑操作符

操作符 逻辑
!expr 对表达式结果取反(true 变为 false ,false 变为 true)
|| 逻辑 OR
&& 逻辑 AND

其他操作符

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

你可能感兴趣的:(Dart入门之操作符)