我想对源列表执行以下操作:
- 地图
- to列表
- 排序
- 褶皱
- 排序
- 展开
- to列表
其中一些方法(如map和toList)是可链接的,因为它们返回一个非null对象。但是,sort
方法返回void
,因为它对List进行操作,而不返回列表。
Dart有一个方法级联运算符,它非常适用于不返回this
或其他对象的方法调用。
如果不在sort
之后分配一个变量,然后再次启动调用链,我很难编写上面的调用序列。
我想写相当于:
return thing
.map(...)
.toList()
.sort(...)
.fold(...)
.sort(...)
.expand(...)
.toList();
我能得到的最接近的是:
var thing
.map(...)
.toList()
..sort(...);
var otherThing = thing
.fold(...)
..sort(...);
var finalThing = otherThing.expand(...).toList();
有更好的方法吗?如何"突破"级联并在链上继续?
你能添加一些parens吗?我想是这样的。。。
return ((thing
.map(...)
.toList()..sort(...))
.fold(...)..sort(...))
.expand(...)
.toList();