模式切换
运算符
Dart 提供了多种运算符来执行不同的操作,包括算术、关系、逻辑、赋值、条件运算符等。
算术运算符
用于执行基本的数学运算。
运算符 | 描述 | 示例 |
---|---|---|
+ | 加法 | a + b |
- | 减法 | a - b |
* | 乘法 | a * b |
/ | 除法(结果为浮点数) | a / b |
~/ | 整除(取商的整数部分) | a ~/ b |
% | 取模(余数) | a % b |
++ | 自增(前置/后置) | a++ 或 ++a |
-- | 自减(前置/后置) | a-- 或 --a |
示例代码:
dart
void main() {
int a = 10, b = 3;
print(a + b); // 13
print(a - b); // 7
print(a * b); // 30
print(a / b); // 3.333...
print(a ~/ b); // 3
print(a % b); // 1
a++;
print(a); // 11
b--;
print(b); // 2
}
系运算符
用于比较两个值,结果为布尔类型。
运算符 | 描述 | 示例 |
---|---|---|
== | 等于 | a == b |
!= | 不等于 | a != b |
> | 大于 | a > b |
< | 小于 | a < b |
>= | 大于等于 | a >= b |
<= | 小于等于 | a <= b |
示例代码:
dart
void main() {
int a = 10, b = 20;
print(a == b); // false
print(a != b); // true
print(a > b); // false
print(a < b); // true
print(a >= 10); // true
print(b <= 15); // false
}
逻辑运算符
用于处理布尔逻辑操作。
运算符 | 描述 | 示例 |
---|---|---|
&& | 逻辑与(AND) | a && b |
|| | 逻辑或(OR) | a || b |
! | 逻辑非(NOT) | !a |
示例代码:
dart
void main() {
bool a = true, b = false;
print(a && b); // false
print(a || b); // true
print(!a); // false
}
赋值运算符
用于给变量赋值,支持多种复合操作。
运算符 | 描述 | 示例 |
---|---|---|
= | 简单赋值 | a = b |
+= | 加法赋值 | a += b |
-= | 减法赋值 | a -= b |
*= | 乘法赋值 | a *= b |
/= | 除法赋值 | a /= b |
%= | 取模赋值 | a %= b |
??= | 如果变量为 null,则赋值 | a ??= b |
示例代码:
dart
void main() {
int a = 5, b = 10;
a += b; // 等价于 a = a + b
print(a); // 15
a ??= 20; // 如果 a 为 null 则赋值为 20,否则不变
print(a); // 15
}
条件运算符
用于根据条件返回不同的值。
三目运算符
condition ? expr1 : expr2
,根据条件返回expr1
或expr2
。dartvoid main() { int a = 10, b = 20; String result = (a > b) ? 'A is greater' : 'B is greater'; print(result); // B is greater }
级联运算符
用于检查一个变量是否为 null。
??
:如果左侧为 null,返回右侧值。?.
:仅当对象不为 null 时访问其成员。
dartvoid main() { String? name; print(name ?? 'Default'); // 输出: Default }
综合示例
dart
void main() {
int x = 5, y = 10;
// 算术运算符
print('Sum: ${x + y}'); // 15
print('Division: ${y ~/ x}'); // 2
// 关系运算符
print('x > y: ${x > y}'); // false
// 逻辑运算符
bool a = true, b = false;
print('a && b: ${a && b}'); // false
// 赋值运算符
x += 2;
print('x: $x'); // 7
// 条件运算符
String result = (x > y) ? 'x is greater' : 'y is greater';
print(result); // y is greater
}