正如官方 Dart 语言文章Method Cascades in Dart中所指出的:
“..”语法调用方法(或 setter 或 getter)但丢弃结果,并返回原始接收器。
简而言之,方法级联为方法调用的接收者可能不得不重复的情况提供了语法糖。
以下是基于/复制先前引用的文章的示例。欲了解更多信息,请阅读它。
add()
例子
在想要将多个元素添加到列表的场景中,传统方式是执行多个分配:
myList.add("item1");
myList.add("item2");
// add again and again…
myList.add("itemN");
虽然您不能做类似myList.add("item1").add("item1")….add("itemN");
的事情,因为add()
does not 方法返回myList
对象而是 avoid
,但您可以使用级联运算符,因为它会丢弃结果并返回原始接收者myList
:
myList..add("item1")..add("item2")…..add("itemN");
myList.add("item1").add("item2")….add("itemN");
另一个例子
所以不要写:
var address = getAddress();
address.setStreet(“Elm”, “13a”);
address.city = “Carthage”;
address.state = “Eurasia”
address.zip(66666, extended: 6666);
一个人可以写
getAddress()
..setStreet(“Elm”, “13a”)
..city = “Carthage”
..state = “Eurasia”
..zip(66666, extended: 6666);