Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dart List.removeRange()方法如何以及为什么影响其他变量?_Dart - Fatal编程技术网

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
对象。如果答案有帮助,您可以向上投票:)