MENU

Dart入门3:运算符

December 16, 2024 • Dart

运算符

指的是在两个变量或表达式之间的运算符

地板除

(~ /):

  • 计算除法并向下取整

类型判断运算符

(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);        //上下代码完全相同