gpt4 book ai didi

javascript - Dart中的javascript “map”等价是什么?

转载 作者:行者123 更新时间:2023-12-03 04:01:43 25 4
gpt4 key购买 nike

我是Dart的新手,我注意到map方法的工作原理与Javascript不同。

我正在尝试将动态列表转换为对象列表。

在Javascript中,这将起作用:

List<BoxType> boxTypes = data["boxTypes"].map((dynamic boxType) => BoxType.fromDynamic(boxType));

但是在Dart中,我遇到了以下错误:
Exception has occurred.
_TypeError (type 'MappedListIterable<dynamic, dynamic>' is not a subtype of type 'List<BoxType>')

我看到我可以像这样在结尾处做一个 .toList():
List<BoxType> boxTypes = data["boxTypes"].map((dynamic boxType) => BoxType.fromDynamic(boxType)).toList();

但这会产生此错误:
Exception has occurred.
_TypeError (type 'List<dynamic>' is not a subtype of type 'List<BoxType>')

所以,我应该用什么代替 map呢?

编辑:就目前而言,这就是我正在做的事情,虽然有点难看,但效果很好
for (var i = 0; i < data["boxTypes"].length; i++) {
boxTypes.add(BoxType.fromDynamic(data["boxTypes"][i]));
}

最佳答案

因为您在dynamic中使用了map,而不是BoxType-该错误显示'List<dynamic>' is not a subtype of 'List<BoxType>',所以只需解决此问题便可以:

List<BoxType> boxTypes = data["boxTypes"].map((BoxType boxType) => BoxType.fromDynamic(boxType)).toList();

关于javascript - Dart中的javascript “map”等价是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55758676/

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