如dart文章所述:

".."语法调用一个方法(或setter或getter),但会丢弃结果,而返回原始接收器.

所以我认为这是可行的:

myList..clear().addAll(otherList);

这让我犯了一个错误,我无法拨打null.addAll.

显然,.先于..,所以.clear()中的result调用了.addAll.

我想现在我有两种可能来写这个:

  1. myList..clear()..addAll(otherList);
  2. (myList..clear()).addAll(otherList);(如果我想得到.addAll()的结果.

对吗?如果是,为什么决定给予.优先权?这似乎很违反直觉.是为了避免这样的语法:myList(..clear().useResultOfClear()).addAll(otherList);吗?

推荐答案

你可以阅读"吉拉德·布拉查:Method Cascades in Dart"中的这篇文章.在它的末尾,您将看到许多示例.

另请参阅this answer of Lasse Nielsen about operator precedence:

想想".."会很有帮助.不是真正的运算符,而更像是作用域构造(如圆括号).它从".."创建一个新的作用域.设置为下一个".."或第一个其他范围分隔符(";",")"、"}"或类似).

基本上,a..b().c()(t){t.b().c(); return t;}(a)是一样的

Dart相关问答推荐

为什么使用三元条件运算符会产生return_of_invalid_type错误?

在Flutter中重命名文件/图像

AngularDart 可以直接路由到组件吗?

如何在 Dart 中创建画布元素?

什么用例有 FirebaseUser 的 reload() 功能?

如何用 Flutter 在同屏路由上制作英雄风格的动画?

那么在 Flutter 中缓存最简单的方法是什么?

如何使用文本小部件设置多行文本?

Flutter更新导航栏

Dart - 一个 dart 项目如何在不使用 pub 的情况下从另一个 dart 项目导入代码?

Flutter web url 导航

访问用户环境变量

将JSON映射到类对象

给 initState 内部的变量赋值或不在 Flutter StatefulWidget 中赋值有什么区别?

不推荐使用AnteStorStateofType,请改用findAncestorStateOfType

我如何知道 websockets 的连接是否有效?

可以在 Dart 中的抽象类中声明静态方法吗?

如何在 base64 中编码 Dart 字符串?

从函数返回多个值

如何在构造函数中初始化最终类属性?