1. 犀牛前端部落首页
  2. dart

Dart 运算符

表达式是一种特殊类型的语句,其求值为一个值。 每个表达式都由

  • 操作数 – 表示数据
  • 运算符 – 定义如何处理操作数以生成值。

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

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

  • 算术运算符
  • 相等和关系运算符
  • 类型检查运算符
  • 按位运算符
  • 赋值运算符
  • 逻辑运算符

算术运算符

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

Dart算术运算符
序号 操作符&含义
1 +(加)
2 −(减)
3 -expr (一元减号,也称为否定(反转表达式的符号))
4 *(乘)
5 /(除)
6 ~/(除,返回整数结果)
7 %(获取整数除法的余数(取余))
8 ++(自加1)
9 – (自减1)

相等和关系运算符

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

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

Dart相等和关系运算符
操作符 描述 Example
gt; 大于 (A gt; B) 为false
lt; 小于 (A lt; B) 为 true
gt;= 大于等于 (A gt;= B)为 false
lt;= 小于等于 (A lt;= B) 为 true
== 等于 (A==B) 为 true
!= 不相等 (A!=B) 为 true

类型检查运算符

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

Dart类型检查运算符
运算符 含义
is 如果对象具有指定的类型,则为True
!is 如果对象具有指定的类型,则返回false

按位运算符

下表列出了Dart中可用的按位运算符及它们的作用。

Dart按位运算符
操作符 描述 Example
按位和 a & b 在每个位都为1时返回1。
按位或 a | b 在每个位位置返回1,其中一个或两个操作数的对应位为1。
异或 a ^ b 在每个位位置返回一个1,其中任一个操作数的对应位为1,但不是两个操作数的对应位都为1。
取反 ~ a 按位取反。
左移 a ≪ b 向左移位二进制表示b(<32)位,从右移零。
右移 a ≫ b 向左移位二进制表示b(<32)位,丢弃移位的位。

赋值运算符

下表列出了Dart中可用的赋值操作符。

Dart赋值运算符
序号 操作符&描述
1 =(赋值)将值从右侧操作数分配给左侧操作数。
2 ? ? = 仅当变量为空时才赋值
3 +=(加且赋值运算符)它将右操作数添加到左操作数并将结果赋给左操作数。
4 -= 它从左操作数中减去右操作数,并将结果赋给左操作数。
5 *= 乘且赋值运算符,把右边操作数乘以左边操作数的结果赋值给左边操作数。
6 /= 除且赋值运算符,把左边操作数除以右边操作数的结果赋值给左边操作数。

注意: 相同的逻辑适用于按位运算符,因此它们将变为«=,»=,»=,»=,| =和^ =。

逻辑运算符

逻辑运算符用于组合两个或多个条件。 逻辑运算符返回一个布尔值。

假设变量A的值为10,而变量B为20。

Dart逻辑运算符
操作符 描述 例子
amp;amp; 称为逻辑与运算符。如果两个操作数都非零,则条件为真。 (A > 10 && B > 10) 为 false。
|| 称为逻辑或运算符。如果两个操作数中有任意一个非零,则条件为真。 (A > 10 || B > 10)为true。
! 称为逻辑非运算符。用来逆转操作数的逻辑状态。如果条件为真则逻辑非运算符将使其为假。 !(A > 10)为true。

条件表达式

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

条件? 表达式1 : 表达式2

如果条件为true,那么就值等于表达式1,如果条件为false,那么值就为表达式。在别的语言中,这个也叫做三元表达式

表达式1?? 表达式2

如果表达式1为非null,则返回其值; 否则,计算并返回表达式2的值。

Example1:

下面的例子显示了如何在Dart中使用条件表达式。

void main() { 
   var a = 10; 
   var res = a > 12 ? "大于 10":"小于等于 10"; 
   print(res); 
}

上面的代码会输出以下结果。

小于等于10

Example2:

我们再来看一下另外一个例子。

void main() { 
   var a = null; 
   var b = 'pipipi.net'; 
   var res = a ?? b; 
   print(res); 
}

上面的代码会输出

pipipi.net

 

原创文章,作者:犀牛前端部落,如若转载,请注明出处:https://www.pipipi.net/dart/dart-operators.html

发表评论

登录后才能评论