【发布时间】:2020-12-15 03:02:00
【问题描述】:
在颤振中,我有两个列表,代码如下。我从 ListA 更改了一个元素,但它也从 ListB 更改,为什么会发生这种情况??
List<Model> listA = List(),
listB = [
new Model.withData(value: "b1"),
new Model.withData(value: "b2")
];
listA = List.from(listB);
print("listA:" + listA.toString() + " listB:" + listB.toString());
listA[0].value = "a1";
print("listA:" + listA.toString() + " listB:" + listB.toString());
这给出了输出
listA:[Model{value: b1}, Model{value: b2}] listB:[Model{value: b1}, Model{value: b2}]
listA:[Model{value: a1}, Model{value: b2}] listB:[Model{value: a1}, Model{value: b2}]
如何仅从 ListA 而不是从 ListB 更改元素?
这是我的模型类
class Model{
String value;
Model.withData({this.value});
@override
String toString() {
return 'Model{value: $value}';
}
}
提前致谢。
【问题讨论】: