请有人能解释一下为什么当我更改第一个列表时第二个更改?
List t = [2,5,4,7];
List b = t;
b.sort((a,b)=>a-b);
print(t);
print(b);
安慰:
[2、4、5、7]
[2、4、5、7]
最佳答案
Dart 从不克隆对象实例。这适用于列表,也适用于所有对象:
class Foo {
int a;
}
void main() {
final first = Foo();
first.a = 42;
final second = first;
second.a = 21;
print(first); // 21
print(second); // 21
}
如果您不想这样做并创建一个列表的副本,请使用
List.from
或 ...
:final list = [0, 1, 2];
final clone = [...list];
list.add(42);
print(clone); // (0, 1, 2);
print(list); // (0, 1, 2, 42);
关于flutter - 为什么列表是绑定(bind)的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59928279/