Dart List.removeRange()方法如何以及为什么影响其他变量?
我不明白Dart List.removeRange()方法如何以及为什么影响其他变量?,dart,Dart,我不明白data.removeRange()如何影响我的数据副本 void main() { int lengthdata = 50; List<double> data = List.filled(lengthdata,0.0,growable: true); List<double> copydata; for (int i = 0; i < 10;i++) { data.add(0.0); } copydata = data;
data.removeRange()
如何影响我的数据副本
void main() {
int lengthdata = 50;
List<double> data = List.filled(lengthdata,0.0,growable: true);
List<double> copydata;
for (int i = 0; i < 10;i++) {
data.add(0.0);
}
copydata = data;
print(copydata.length);
print(data.length);
data.removeRange(0, data.length - lengthdata);
print(copydata.length);
print(data.length);
}
您需要像这样使用它:
copydata = List.from(data);
您可以从中阅读更多内容。
copydata=data
不复制列表,而是将引用复制到列表。所以现在,copydata
和data
都指向同一个List
实例。在您的情况下,可以调用:copydata=data.toList()
来复制列表。我应该注意,您正在创建列表的副本,但不是列表中每个对象的深度副本。在您的例子中,这是很好的,因为您的列表中有不可变的double
对象。如果答案有帮助,您可以向上投票:)