cascade operator 用于调用对象上的方法序列,使用...双点运算符。
例如,你有一个列表对象,想为多个值调用同一个添加方法。
你将按以下方式调用
List list = [];
list.add(1);
list.add(2);
list.add(3);
list.add(4);
反复调用对象名称list来做同样的操作。你也可以对同一个对象做多个操作。 级联运算符(...)的引入是为了避免当前对象实例名的重复出现。
Dart级联运算符
级联运算符也被称为双点运算符。
它用于通过忽略返回值,使用双点进行连锁操作。
语法。
instance..method1..method2..methodN
instance...method1返回这个对象。
同样的内容可以用以下方式重写
main() {
List list = [];
list
..add(1)
..add(2)
..add(3)
..add(4);
}
它有助于开发人员用少量的代码快速构建对象。
dart中的空值安全的级联符号
有时,你调用双点运算符的对象可能是空的,在这种情况下,使用空值级联(? ...)。
var employee = Employee();
employee.id = 1;
employee.name ="John";
employee.salary = 5000;
上面的代码被替换成了级联操作
var employee = Employee()
..id = 1;
..name ="John";
..salary = 5000;
接下来,在第一个级联操作中加入空值做空操作(?
var employee = Employee()
?..id = 1;
..name ="John";
..salary = 5000;
这等于
var employee = Employee();
employee?.id = 1;
employee?.name ="John";
employee?.salary = 5000;