~/ ---> 地板除
is | is! ---> 类型判断运算符
?? | ??= ---> 避空运算符
?. ---> 条件属性访问
.. ---> 级联运算符
obj.method(); 返回 method方法的返回值
obj..method(); 返回 obj对象的引用
void main() { print(3 / 2); // 1.5 // ~/ 向下取整 print(3 ~/ 2); // 1 // 类型判断运算符 String str = "hello world"; print(str is int); // false print(str is String); // true print(str is! List); // true // 避空运算符 print(1 ?? 8); // 1 print(0 ?? 8); // 0 print(null ?? 8); // 8 // 如果变量a是null,就返回0 var a; print(a ?? 0); // 0 var b; b = 9; print(b ?? 0); // 9 Map c = {}; print(c['age']); // null // c.age 为null,执行赋值操作 c['age'] ??= 4; print(c); // {age: 4} // c.age 不为null,不执行后续赋值操作 c['age'] ??= 5; print(c); // {age: 4} // 条件属性运算符(保护可能为空的属性) var obj; // print(obj.length); // NoSuchMethodError: The getter 'length' was called on null print(obj?.length); // null // 级联运算符 List l1 = new List.empty(growable: true); l1.add(1); l1.add(2); print(l1); // [1, 2] List l2 = new List.empty(growable: true); l2 ..add(1) ..add(2) ..add(3) ..remove(3); print(l2); // [1, 2] }