gpt4 book ai didi

dart - 如何在Dart map 列表上进行深复制?

转载 作者:行者123 更新时间:2023-12-03 04:40:00 24 4
gpt4 key购买 nike

如何在dart中的 map 列表上进行深复制? 。这是我尝试过的代码:

void main() {
List<Map> arr1 = [
{'f1': 1, 'f2': 2}
];
List<Map> arr2 = [...arr1];
arr2[0]["f1"] = 11;
print("$arr1 $arr2");
}
我希望 arr1[0]["f1"]1而不是 11

最佳答案

没有内置功能可以深度复制数据结构。
如果知道类型,那就很简单了:

var copy = [for (var e in original) ...e];
也就是说,在每个级别上使用 for / in直到最后一个级别,然后进行传播。
进行列表/映射结构深层复制的通用函数可能无法编写。最大的问题是,没有一种方法可以仅基于现有映射的运行时类型来创建具有与现有映射相同类型参数的新 MaptoList上有一个 List,可以创建相同类型的列表,但 toMap上没有 Map。因此,您需要编写复制操作,以使其与您要复制的实际类型相匹配,而您不能一般地这样做。

关于dart - 如何在Dart map 列表上进行深复制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63408911/

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