Dart 编程 - 运算符


表达式是一种计算结果为值的特殊语句。每个表达式都由以下部分组成 -

  • 操作数- 代表数据

  • 运算符- 定义如何处理操作数以产生值。

考虑以下表达式——“2 + 3”。在此表达式中,2 和 3 是操作数,符号“+”(加号)是运算符

在本章中,我们将讨论 Dart 中可用的运算符。

  • 算术运算符
  • 等式和关系运算符
  • 型式试验操作员
  • 按位运算符
  • 赋值运算符
  • 逻辑运算符

算术运算符

下表显示了 Dart 支持的算术运算符。

显示示例

先生编号 运算符及含义
1 +

添加

2 -

减去

3 -表达式

一元减号,也称为否定(反转表达式的符号)

4 *

5 /

划分

6 〜/

除法,返回整数结果

7 %

获取整数除法的余数(模)

8 ++

增量

9 --

递减

等式和关系运算符

关系运算符测试或定义两个实体之间的关系类型。关系运算符返回一个布尔值,即真/假。

假设A的值为10,B的值为20。

显示示例

操作员 描述 例子
> 比...更棒 (A > B) 为假
< 小于 (A < B) 为真
>= 大于或等于 (A >= B) 为假
<= 小于或等于 (A <= B) 为真
== 平等 (A==B) 为假
!= 不等于 (A!=B) 为真

型式试验操作员

这些运算符可以方便地在运行时检查类型。

显示示例

操作员 意义
如果对象具有指定类型,则为 True
是! 如果对象具有指定类型,则为 False

按位运算符

下表列出了 Dart 中可用的按位运算符及其作用 -

显示示例

操作员 描述 例子
按位与 甲和乙 在两个操作数的对应位均为 1 的每个位位置返回 1。
按位或 一个 | 乙 在其中一个或两个操作数的对应位为 1 的每个位位置返回 1。
按位异或 ^b 在每个位位置返回 1,其中任一操作数(但不是两个操作数)的对应位均为 1。
按位非 〜一个 反转其操作数的位。
左移 a≪b 将二进制表示形式的 a 向左移动 b (< 32) 位,从右侧移入零。
符号传播右移 a ≫ b 将二进制表示形式的 a 右移 b (< 32) 位,并丢弃移出的位。

赋值运算符

下表列出了 Dart 中可用的赋值运算符。

显示示例

先生编号 运算符及描述
1 =(简单赋值)

将右侧操作数中的值分配给左侧操作数

Ex :C = A + B 将把 A + B 的值赋给 C

2 ??=

仅当变量为 null 时才赋值

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) 为假。
||

OR - 如果指定的至少一个表达式返回 true,则运算符返回 true

(A > 10 || B > 10) 为真。

NOT - 运算符返回表达式结果的倒数。例如:!(7>5) 返回 false

!(A > 10) 为真。

条件表达式

Dart 有两个运算符,可让您计算可能需要 ifelse 语句的表达式 -

健康)状况 ?表达式 1 : 表达式 2

如果条件为 true,则表达式计算expr1(并返回其值);否则,它计算并返回expr2的值。

表达式1 ?? 表达式2

如果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