Dart 运算符

2025年3月17日 | 阅读 8 分钟

运算符是用于操纵值或对其操作数执行操作的符号。 给定表达式:5+4,在该表达式中,5 和 4 是操作数,"+" 是运算符。

Dart 提供了一组广泛的内置运算符来完成各种类型的操作。 运算符可以是单目或二元,这意味着单目运算符只接受一个操作数,而二元运算符接受两个操作数和运算符。 有几种类型的运算符。 以下是 Dart 运算符的列表。

运算符类型

Dart 支持以下类型的运算符。

  • 算术运算符
  • 赋值运算符
  • 关系运算符
  • 类型测试运算符
  • 逻辑运算符
  • 位运算符
  • 条件运算符
  • 级联表示法(..) 运算符
Dart Operators

Dart 算术运算符

算术运算符是最常用的运算符,用于执行加法、减法、乘法、除法等。 假设变量 a 包含 20,变量 b 包含 10,则 -

序号。运算符名称描述示例
1.加法(+)它将左操作数加到右操作数。a+b 将返回 30
2.减法(-)它从左操作数中减去右操作数。a-b 将返回 10
3除法(/)它将第一个操作数除以第二个操作数并返回商。a/b 将返回 2.0
4.乘法(*)它将一个操作数乘以另一个操作数。a*b 将返回 200
5.求模(%)它在将一个操作数除以另一个操作数后返回余数。a%b 将返回 0
6.整除(~/)它将第一个操作数除以第二个操作数并返回整数商。a/b 将返回 2
7.一元负号(-expr)它用于单个操作数改变其符号。-(a-b) 将返回 -10

示例 -

输出

Example of Arithmetic operators 
n1+n2 = 15 
n1-n2 = 5 
n1*n2 = 50 
n1/=n2 = 2 
n1%n2 = 0
  • Dart 一元运算符(后置和前置)

Java 中,++-- 运算符分别称为递增和递减运算符,也称为一元运算符。 一元运算符对单个操作数进行操作,其中 ++ 将 1 加到操作数,-- 分别从操作数中减去 1。

一元运算符可以通过两种方式使用 - 后缀和前缀。 如果 ++ 用作后缀(如 x++),它首先返回操作数的值,然后递增 x 的值。 如果 -- 用作前缀(如 ++x),它会增加 x 的值。

序号。运算符名称描述示例
1.++(前缀)它递增操作数的值。++x
2.++(后缀)它在递增之前返回操作数的实际值。x++
3.--(前缀)它递减操作数的值。--x
4.--(后缀)它在递减之前返回操作数的实际值。x--

让我们理解以下示例 -

示例 -

输出

30
26
9
12

赋值运算符

赋值运算符用于为变量赋值。 我们也可以将其与算术运算符结合使用。 下面给出了赋值运算符的列表。 假设 a 包含值 20,b 包含 10。

运算符名称描述
=(赋值运算符)它将右侧表达式赋值给左侧操作数。
+=(加法并赋值)它将右操作数的值加到左操作数,并将结果赋值回左操作数。 例如 - a+=b → a = a+b → 30
-=(减法并赋值)它从左操作数中减去右操作数的值,并将结果赋值回左操作数。 例如 - a-=b → a = a-b → 10
*=(乘法并赋值)它将操作数相乘,并将结果赋值回左操作数。 例如 - a*=b → a = a*b → 200
/=(除法并赋值)它将左操作数的值除以右操作数,并将结果赋值回左操作数。 例如 - a%=b → a = a%b → 2.0
~/=(整除并赋值)它将左操作数的值除以右操作数,并将整数余数商赋值回左操作数。 例如 - a%=b → a = a%b → 2
%=(取模并赋值)它将左操作数的值除以右操作数,并将余数赋值回左操作数。 例如 - a%=b → a = a%b → 0
<<=(左移并赋值)表达式 a<<=3 等于 a = a<<3
>>=(右移并赋值)表达式 a>>=3 等于 a = a>>3
&=(按位与并赋值)表达式 a&=3 等于 a = a&3
^=(按位异或并赋值)表达式 a^=3 等于 a = a^3
|=(按位或并赋值)表达式 a|=3 等于 a = a|3

让我们理解以下示例 -

示例 -

输出

Example of Assignment operators 
n1+=n2 = 15 
n1-=n2 = 10 
n1*=n2 = 50 
n1~/=n2 = 10 
n1%=n2 = 0 

关系运算符

关系运算符或比较运算符用于比较两个表达式和操作数。 两个表达式的比较返回布尔值 true 和 false。 假设 a 包含 20,b 包含 10,然后考虑下表。

序号。运算符描述
1.>(大于)a>b 将返回 TRUE。
2.<(小于)a<b 将返回 FALSE。
3.>=(大于或等于)a>=b 将返回 TRUE。
4.<=(小于或等于)a<=b 将返回 FALSE。
5.==(等于)a==b 将返回 FALSE。
6.!=(不等于)a!=b 将返回 TRUE。

让我们理解以下示例 -

示例 -

输出

The example of Relational Operator
a is greater than b: true
a is less than b: false
a is greater than or equal to b: true
a is less than and equal to b: false
a is not equal to  b: true
a is  equal to  b: false

Dart 类型测试运算符

类型测试运算符用于在运行时测试表达式的类型。 考虑下表。

序号。运算符描述
1.as用于类型转换。
2.is如果对象具有指定的类型,则返回 TRUE。
3.is!如果对象没有指定的类型,则返回 TRUE。

让我们理解下面的例子。

输出

true
false

Dart 逻辑运算符

逻辑运算符用于计算表达式并做出决策。 Dart 支持以下逻辑运算符。

序号。运算符描述
1.&&(逻辑与)如果所有表达式都为真,则返回真。
2.||(逻辑或)如果任何表达式为真,则返回 TRUE。
3.!(逻辑非)它返回表达式的补码。

让我们理解下面的例子。

输出

Example of the logical operators 
false 
true 
false

Dart 位运算符

位运算符对两个操作数的值进行逐位运算。 以下是位运算符的表。

让我们理解下面的例子。


序号。运算符描述
1.&(二进制与)如果两个位都为 1,则返回 1。
2.|(二进制或)如果任一位为 1,则返回 1。
3.^(二进制异或)如果两个位不同,则返回 1。
4.~(补码)它返回位的反转。 如果位为 0,则补码将为 1。
5.<<(左移)左操作数的值向左移动右操作数中存在的位数。
6.>>(右移)右操作数的值向左移动左操作数中存在的位数。

让我们理解以下示例 -

示例 -

输出

Example of Bitwise operators 
a & b = 16
 a | b = 29
 a ^ b = 13
 ~a = 4294967270
 c<<1= 100
 c>>1= 6

Dart 条件运算符 (?:)

条件运算符与 if-else 语句相同,并提供与条件语句类似的功能。 它是 if-else 语句的第二种形式。 它也被标识为 “三元运算符”。 语法如下所示。

语法 1 -

如果给定条件为真,则返回 exp1,否则返回 exp2。

语法 2 -

如果 exp1 不为 null,则返回其值,否则返回 exp2 的值。

让我们理解下面的例子。

示例 - 1

输出

20

让我们看另一个场景。

示例 -2

输出

value lesser than or equal to 30

Dart 级联表示法运算符

级联表示法运算符 (..) 用于在同一对象上评估一系列操作。 它与方法链相同,避免了几个步骤,并且我们不需要将结果存储在临时变量中。


下一个主题Dart 常量