表达式是一种特殊类型的语句,其求值为一个值。 每个表达式都由
操作数 – 表示数据
运算符 – 定义如何处理操作数以生成值。
思考以下表达式 – “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