运算符
表达式是一种特殊类型的语句,它计算为一个值。 每个表达都由 -
Operands - 表示数据
Operator - 定义如何处理操作数以生成值。
考虑以下表达式 - “2 + 3”。 在该表达式中,2和3是operands ,符号“+”(加号)是operator 。
在本章中,我们将讨论Dart中可用的运算符。
- 算术运算符
- 平等和关系运算符
- 键入测试运算符
- 按位运算符
- 分配运算符
- 逻辑运算符
算术运算符 (Arithmetic Operators)
下表显示了Dart支持的算术运算符。
Sr.No | 经营者和意义 |
---|---|
1 | + 加 |
2 | − 减去 |
3 | -expr 一元减号,也称为否定(反转表达式的符号) |
4 | * 乘 |
5 | / 划分 |
6 | ~/ 除以,返回整数结果 |
7 | % 获取整数除法的余数(模数) |
8 | ++ 增量 |
9 | -- 递减 |
平等和关系运算符
关系运算符测试或定义两个实体之间的关系类型。 关系运算符返回一个布尔值,即true/false。
假设A的值为10,B为20。
操作者 | 描述 | 例 |
---|---|---|
> | Greater than | (A> B)是假的 |
< | Lesser than | (A < B) 为真 |
>= | 大于或等于 | (A> = B)为假 |
<= | 小于或等于 | (A <= B)为真 |
== | Equality | (A == B)是真的 |
!= | 不相等 | (A!= B)是真的 |
键入测试运算符
这些运算符在运行时检查类型很方便。
操作者 | 含义 |
---|---|
is | 如果对象具有指定的类型,则为True |
is! | 如果对象具有指定的类型,则返回false |
按位运算符 (Bitwise Operators)
下表列出了Dart中可用的按位运算符及其作用 -
操作者 | 描述 | 例 |
---|---|---|
Bitwise AND | a&b | 返回每个位位置的一个,两个操作数的相应位为1。 |
Bitwise OR | 一个| b | 在每个位的位置返回一个,其中一个或两个操作数的相应位是1。 |
Bitwise XOR | a ^ b | 在每个位位置返回一个,其中任一个但不是两个操作数的相应位都是1。 |
Bitwise NOT | ~a | 反转其操作数的位。 |
Left shift | a ≪ b | 将二进制表示b(<32)位向左移位,从右移零。 |
Signpropagating right shift | a»b | 将二进制表示b(<32)位向右移位,丢弃移位的位。 |
赋值操作符 (Assignment Operators)
下表列出了Dart中可用的赋值运算符。
Sr.No | 操作符和说明 |
---|---|
1 | =(Simple Assignment ) 将值从右侧操作数分配给左侧操作数 Ex :C = A + B将A + B的值分配给C |
2 | ??= 仅当变量为null时才分配值 |
3 | +=(Add and Assignment) 它将右操作数添加到左操作数并将结果赋给左操作数。 Ex :C + = A等于C = C + A. |
4 | ─=(Subtract and Assignment) 它从左操作数中减去右操作数,并将结果赋给左操作数。 Ex :C - = A相当于C = C - A. |
5 | *=(Multiply and Assignment) 它将右操作数与左操作数相乘,并将结果赋给左操作数。 Ex :C * = A等于C = C * A. |
6 | /=(Divide and Assignment) 它将左操作数与右操作数分开,并将结果赋给左操作数。 |
Note - 相同的逻辑适用于Bitwise运算符,因此它们将变为«=,»=,»=,»=,| =和^ =。
逻辑运算符 (Logical Operators)
逻辑运算符用于组合两个或多个条件。 逻辑运算符返回一个布尔值。 假设变量A的值为10,B为20。
操作者 | 描述 | 例 |
---|---|---|
&& | And - 仅当指定的所有表达式都返回true时,运算符才返回true | (A> 10 && B> 10)是假的。 |
|| | OR - 如果指定的至少一个表达式返回true,则运算符返回true | (A> 10 || B> 10)是真的。 |
! | NOT - 运算符返回表达式结果的反函数。 例如:!(7“5)返回false | !(A> 10)是真的。 |
条件表达式
Dart有两个运算符,可以让你评估可能需要ifelse语句的表达式 -
条件? expr1:expr2
如果condition为true,则表达式计算expr1 (并返回其值); 否则,它会计算并返回expr2的值。
expr1 ?? 表达式2
如果expr1为非null,则返回其值; 否则,计算并返回expr2的值
例子 (Example)
以下示例显示如何在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
例子 (Example)
让我们再看一个例子 -
void main() {
var a = null;
var b = 12;
var res = a ?? b;
print(res);
}
它将产生以下输出 -
12