运算符概览
运算符 | 符号 | 说明 |
---|---|---|
算术运算符 | + | 加法运算 |
- | 减法运算 | |
* | 乘法运算 | |
/ | 除法运算 | |
% | 取余运算 | |
~/ | 取整运算 | |
关系运算符 | == | 比较相等运算 |
!= | 比较不等于运算 | |
> | 比较大于运算 | |
< | 比较小于运算 | |
>= | 比较大于或等于 | |
<= | 比较小于或等于 | |
类型判断运算符 | as | 类型转换 |
is | 如果对象是指定类型则返回 true | |
is! | 如果对象是指定类型则返回 false | |
赋值运算符 | =、*=、 %=、 >>>=、 ^=、 +=、 <<=、 &=、 |=、 -=、 ~/=、 >>= | a [赋值运算符] b |
逻辑运算符 | ! | 对表达式结果取反 |
|| | 逻辑或 | |
&& | 逻辑与 | |
& | 按位与 | |
| | 按位或 | |
^ | 按位异或 | |
~ | 按位取反 | |
<< | 位左移 | |
>> | 位右移 | |
>>> | 无符号右移 | |
条件表达式 | 条件?表达式1:表达式2 | 如果条件为 true,执行表达式 1并返回执行结果,否则执行表达式 2 并返回执行结果。 |
表达式1 ?? 表达式2 | 如果 表达式1 为非 null 则返回其值,否则执行 表达式2 并返回其值。 | |
级联运算符 | .. 、 ?.. | 可以在同一个对象上连续调用多个对象的变量或方法。 |
概括介绍
对简单的运算符不再做介绍
条件表达式
条件?表达式1:表达式2 :如果条件为 true,执行表达式 1并返回执行结果,否则执行表达式 2 并返回执行结果。
void main() {
var a = 8;
var value1 = a == 0 ? "a等于0" : "a不等于0";
var value2 = a == 8 ? "a等于8" : "a不等于8";
print(value1);
print(value2);
}
表达式1 ?? 表达式2 : 如果表达式 1 为非 null 则返回其值,否则执行表达式 2 并返回其值。
void main() {
var a = null;
var b = a ?? "hello";
print(b);
var c = "world";
var d = c ?? "null";
print(d);
}
级联运算符
可以在同一个对象上连续调用多个对象的变量或方法。
void main() {
var model = FunModel()
..aFun()
..bFun()
..cFun()
..dFun();
}
class FunModel {
aFun() {
}
bFun() {
}
cFun() {
}
dFun() {
}
}
?..可以保证不为空的情况下调用
void main() {
var model = FunModel()
?..aFun()
..bFun()
..cFun()
..dFun();
}
class FunModel {
aFun() {
}
bFun() {
}
cFun() {
}
dFun() {
}
}