Dart 编程 - 运算符
表达式是一种特殊的语句,其计算结果为一个值。每个表达式都由 − 组成
操作数 − 表示数据
运算符 − 定义如何处理操作数以产生值。
考虑以下表达式 - "2 + 3"。在这个表达式中,2 和 3 是操作数,符号"+"(加号)是运算符。
在本章中,我们将讨论 Dart 中可用的运算符。
- 算术运算符
- 相等和关系运算符
- 类型测试运算符
- 按位运算符
- 赋值运算符
- 逻辑运算符
算术运算符
下表显示了 Dart 支持的算术运算符。
Sr.No | 运算符和含义 |
---|---|
1 | +
加 |
2 | −
减 |
3 | -expr
一元减法,也称为否定(反转表达式的符号) |
4 | *
乘 |
5 | /
除法 |
6 | ~/
除法,返回整数结果 |
7 | %
获取整数除法的余数(取模) |
8 | ++
增量 |
9 | --
减量 |
等式和关系运算符
关系运算符测试或定义两个实体之间的关系类型。关系运算符返回布尔值,即 true/false。
假设 A 的值为 10,B 的值为 20。
运算符 | 描述 | 示例 |
---|---|---|
> | 大于 | (A > B) 为 False |
< | 小于 | (A < B) 为真 |
>= | 大于或等于 | (A >= B) 为假 |
<= | 小于或等于 | (A <= B) 为真 |
== | 相等 | (A==B) 为假 |
!= | 不等于 | (A!=B) 为真 |
类型测试运算符
这些运算符对于检查类型非常有用运行时。
运算符 | 含义 |
---|---|
is | 如果对象具有指定类型,则为 True |
is! | 如果对象具有指定类型,则为 False |
按位运算符
下表列出了 Dart 中可用的按位运算符及其作用 −
运算符 | 描述 | 示例 |
---|---|---|
按位与 | a & b | 在两个操作数的对应位均为 1 的每个位位置上返回 1。 |
按位或 | a | b | 返回每个位位置上的 1,对于该位位置,其中一个操作数或两个操作数的对应位为 1。 |
按位异或 | a ^ b | 返回每个位位置上的 1,对于该位位置,其中一个操作数(但不是两个操作数)的对应位为 1。 |
按位非 | ~ a | 反转其操作数的位。 |
左移 | a ≪ b | 将二进制表示中的 a (< 32) 位向左移动,从右侧移入零。 |
符号传播右移 | a ≫ b | 将二进制表示中的 a (< 32) 位向右移动,丢弃移出的位。 |
赋值运算符
下表列出了 Dart 中可用的赋值运算符。
Sr.No | 操作员 &描述 |
---|---|
1 | =(简单赋值)
将右侧操作数的值赋给左侧操作数 例:C = A + B 将 A + B 的值赋给 C |
2 | ??=
仅当变量为空时才赋值 |
3 | +=(添加和赋值)
它将右侧操作数添加到左侧操作数,并将结果赋给左侧操作数。 例:C += A 等同于 C = C + A |
4 | ─=(减法并赋值)
它将右操作数从左操作数中减去,并将结果赋值给左操作数。 例:C -= A 等同于 C = C – A |
5 | *=(乘法并赋值)
它将右操作数与左操作数相乘,并将结果赋值给左操作数。 例:C *= A 等同于 C = C * A |
6 | /=(除法和赋值)
它将左操作数除以右操作数,并将结果赋值给左操作数。 |
注意 − 同样的逻辑也适用于位运算符,因此它们将变为 ≪=、≫=、≫=、≫=、|= 和 ^=。
逻辑运算符
逻辑运算符用于组合两个或多个条件。逻辑运算符返回布尔值。假设变量 A 的值为 10,变量 B 的值为 20。
运算符 | 说明 | 示例 |
---|---|---|
&& | And − 仅当所有指定表达式都返回 true 时,运算符才返回 true |
(A > 10 && B > 10) 为 False。 |
|| | OR −如果指定的表达式中至少有一个返回 true,则运算符返回 true。 |
(A > 10 || B > 10) 为 True。 |
! | NOT − 运算符返回表达式结果的逆。例如:!(7>5) 返回 false |
!(A > 10) 为 True。 |
条件表达式
Dart 有两个运算符,可让您评估可能需要 ifelse 语句 − 的表达式。
条件? expr1 : expr2
如果条件为真,则表达式计算 expr1(并返回其值);否则,计算并返回 expr2 的值。
expr1 ?? expr2
如果 expr1 非空,则返回其值;否则,计算并返回 expr2 的值
示例
以下示例展示了如何在 Dart 中使用条件表达式 −
void main() { var a = 10; var res = a > 12 ? "value greater than 10":"value lesser than or equal to 10"; print(res); }
它将产生以下输出 −
value lesser than or equal to 10
示例
我们再举一个例子 −
void main() { var a = null; var b = 12; var res = a ?? b; print(res); }
它将产生以下输出 −
12