Skip to content

运算符(Operators)

Dart 提供了丰富的内置运算符,可以用于算术、比较、逻辑操作等。 运算符主要分为以下几类:

算术运算符

运算符含义示例
+加法2 + 3 == 5
-减法2 - 3 == -1
-一元减号(取负数)-(3) == -3
*乘法2 * 3 == 6
/除法,结果为 double5 / 2 == 2.5
~/除法取整5 ~/ 2 == 2
%取余数5 % 2 == 1

自增与自减运算符

运算符含义示例
++var先自增后使用var a = 0; print(++a); // 输出 1
var++先使用后自增var a = 0; print(a++); // 输出 0, a 变为 1
--var先自减后使用var a = 2; print(--a); // 输出 1
var--先使用后自减var a = 2; print(a--); // 输出 2, a 变为 1

相等与关系运算符

运算符含义示例
==相等2 == 2true
!=不等2 != 3true
>大于3 > 2
<小于2 < 3
>=大于等于3 >= 3
<=小于等于2 <= 3

类型判断运算符

运算符含义示例
as类型转换(强制转换)(emp as Person)
is判断是否为某类型emp is Person
is!判断是否不是某类型emp is! Person

逻辑运算符

运算符含义示例
!取反!true == false
&&逻辑与true && false == false
``逻辑或`truefalse == true`

按位与移位运算符

运算符含义示例
&按位与5 & 3 == 1
``按位或`53 == 7`
^按位异或5 ^ 3 == 6
~expr按位取反~5 == -6
<<左移5 << 1 == 10
>>右移5 >> 1 == 2
>>>无符号右移-1 >>> 2 结果为一个大整数

赋值运算符

运算符示例等价于
=a = bb 的值赋给 a
+=a += ba = a + b
-=a -= ba = a - b
*=a *= ba = a * b
/=a /= ba = a / b
~/=a ~/= ba = a ~/ b
%=a %= ba = a % b
<<=a <<= ba = a << b
>>=a >>= ba = a >> b
&=a &= ba = a & b
^=a ^= ba = a ^ b
`=``a= b``a = ab`

条件运算符

  • 条件表达式

    dart
    condition ? expr1 : expr2

    conditiontrue,返回 expr1;否则返回 expr2

  • 空值判断运算符

    dart
    expr1 ?? expr2

    expr1 不为 null,返回 expr1;否则返回 expr2


级联运算符(..)

允许在同一个对象上连续调用多个方法或访问多个属性:

dart
var sb = StringBuffer()
  ..write('Hello')
  ..write(' Dart');

等价于:

dart
var sb = StringBuffer();
sb.write('Hello');
sb.write(' Dart');

其他运算符

运算符含义
()函数调用
[]下标访问
?[]空安全下标访问
.成员访问
?.空安全成员访问