运算符
指的是在两个变量或表达式之间的运算符
地板除
(~ /):
- 计算除法并向下取整
类型判断运算符
(is | is!):
- is 用于判断某个变量是某个类型;
- is! 判断不是
List list = [];
if (list is List) {
print(list is List);
} else {
print("list is not list");
}
避空运算符
(?? | ??= ):
- ?? 是空则返回前面内容,不是空则返回后面内容
- ??= 如果前面内容是空,则将其赋值为后面的内容
var foo;
print(foo ?? 3); //输出为3
foo = null;
print(foo ??= 10); //输出为10
条件属性运算符
(?.):
- 保护可能为空的属性,访问前先判断是否为空
var map = new Map();
print(map.length);
var obj;
print(obj.length); //编译报错
print(obj?.length); //输出为null
级联运算符
(..):
- 返回值为对象的引用
myObject.my Method(); / / 返回 my Method 的返回值
myObject..my Method(); / / 返回 myObject 对象的引用
var set = new Set();
set.add(1);
set.add(2);
set.add(3);
set.remove(2);
print(set);
var set1 = new Set();
set1
..add(9)
..add(8)
..add(7)
..remove(7);
print(set1); //上下代码完全相同