gpt4 book ai didi

dart - 在 Dart 中,如何仅使用级联或链式调用来干净地映射/排序/折叠/排序/扩展?

转载 作者:行者123 更新时间:2023-12-03 03:53:41 29 4
gpt4 key购买 nike

我想对源列表执行以下操作:

  • map
  • 列表
  • 排序
  • 折叠
  • 排序
  • 展开
  • 列表

其中一些方法(例如map和toList)是可链接的,因为它们返回非空对象。但是,sort 方法返回 void,因为它对 List 进行操作,并且不返回列表。

Dart 有一个 method cascade operator ,这对于不返回 this 或其他对象的方法调用非常有用。

我很难编写上述调用序列,而无需在排序之后分配变量,然后再次启动调用链。

我想写相当于:

return thing
.map(...)
.toList()
.sort(...)
.fold(...)
.sort(...)
.expand(...)
.toList();

我能得到的最接近的是:

var thing
.map(...)
.toList()
..sort(...);

var otherThing = thing
.fold(...)
..sort(...);

var finalThing = otherThing.expand(...).toList();

还有更好的办法吗?如何“突破”级联并继续在链上?

最佳答案

你能加一些括号吗?我想是这样的......

return ((thing
.map(...)
.toList()..sort(...))
.fold(...)..sort(...))
.expand(...)
.toList();

关于dart - 在 Dart 中,如何仅使用级联或链式调用来干净地映射/排序/折叠/排序/扩展?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20450874/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com