- Dart编程教程
- Dart编程 - 首页
- Dart编程 - 概述
- Dart编程 - 环境搭建
- Dart编程 - 语法
- Dart编程 - 数据类型
- Dart编程 - 变量
- Dart编程 - 运算符
- Dart编程 - 循环
- Dart编程 - 决策
- Dart编程 - 数字
- Dart编程 - 字符串
- Dart编程 - 布尔值
- Dart编程 - 列表
- Dart编程 - 列表
- Dart编程 - 映射
- Dart编程 - 符号
- Dart编程 - Rune (字符单元)
- Dart编程 - 枚举
- Dart编程 - 函数
- Dart编程 - 接口
- Dart编程 - 类
- Dart编程 - 对象
- Dart编程 - 集合
- Dart编程 - 泛型
- Dart编程 - 包
- Dart编程 - 异常处理
- Dart编程 - 调试
- Dart编程 - Typedef (类型定义)
- Dart编程 - 库
- Dart编程 - 异步操作
- Dart编程 - 并发
- Dart编程 - 单元测试
- Dart编程 - HTML DOM
- Dart编程实用资源
- Dart编程 - 快速指南
- Dart编程 - 资源
- Dart编程 - 讨论
Dart编程 - 运算符
表达式是一种特殊的语句,它会计算出一个值。每个表达式都由以下部分组成:
操作数 - 代表数据
运算符 - 定义如何处理操作数以产生一个值。
考虑以下表达式:“2 + 3”。在这个表达式中,2 和 3 是操作数,符号“+”(加号)是运算符。
本章将讨论Dart中可用的运算符。
- 算术运算符
- 相等性和关系运算符
- 类型测试运算符
- 位运算符
- 赋值运算符
- 逻辑运算符
算术运算符
下表显示了Dart支持的算术运算符。
序号 | 运算符及含义 |
---|---|
1 | +
加 |
2 | 减
减法 |
3 | -expr
一元减号,也称为负号(反转表达式的符号) |
4 | *
乘 |
5 | /
除 |
6 | ~/
整数除法,返回整数结果 |
7 | %
获取整数除法的余数(模运算) |
8 | ++
自增 |
9 | --
自减 |
相等性和关系运算符
关系运算符测试或定义两种实体之间的关系类型。关系运算符返回布尔值,即true/false。
假设A的值为10,B的值为20。
运算符 | 描述 | 示例 |
---|---|---|
> | 大于 | (A > B) 为False |
< | 小于 | (A < B) 为True |
>= | 大于或等于 | (A >= B) 为False |
<= | 小于或等于 | (A <= B) 为True |
== | 等于 | (A==B) 为False |
!= | 不等于 | (A!=B) 为True |
类型测试运算符
这些运算符方便在运行时检查类型。
运算符 | 含义 |
---|---|
is | 如果对象具有指定的类型,则为True |
is! | 如果对象不具有指定的类型,则为True |
位运算符
下表列出了Dart中可用的位运算符及其作用:
运算符 | 描述 | 示例 |
---|---|---|
按位与 | a & b | 对于两个操作数的对应位都为1的每个位位置,返回1。 |
按位或 | a | b | 对于两个操作数的对应位中至少有一个为1的每个位位置,返回1。 |
按位异或 | a ^ b | 对于两个操作数的对应位中只有一个为1的每个位位置,返回1。 |
按位非 | ~ a | 反转其操作数的位。 |
左移 | a << b | 将a的二进制表示向左移动b(<32)位,从右边移入零。 |
带符号右移 | a >> b | 将a的二进制表示向右移动b(<32)位,丢弃移出的位。 |
赋值运算符
下表列出了Dart中可用的赋值运算符。
序号 | 运算符及描述 |
---|---|
1 | =(简单赋值)
将右侧操作数的值赋给左侧操作数 例: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。
运算符 | 描述 | 示例 |
---|---|---|
&& | 与 - 只有当所有指定的表达式都返回true时,运算符才返回true |
(A > 10 && B > 10) 为False。 |
|| | 或 - 如果至少一个指定的表达式返回true,则运算符返回true |
(A > 10 || B > 10) 为True。 |
! | 非 - 运算符返回表达式的结果的反值。例如:!(7>5) 返回false |
!(A > 10) 为True。 |
条件表达式
Dart有两个运算符,允许你评估可能需要ifelse语句的表达式:
condition ? expr1 : expr2
如果condition为true,则表达式计算expr1(并返回其值);否则,它计算并返回expr2的值。
expr1 ?? expr2
如果expr1非null,则返回其值;否则,计算并返回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