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 如何在颤振中增加两倍_Dart - Fatal编程技术网

Dart 如何在颤振中增加两倍

Dart 如何在颤振中增加两倍,dart,Dart,我有一个双打列表,我想显示所有这些相加的结果, 我以前做过,但我不能给那些人看, 事实上,我每次都得到相同的元素 最好的方法是什么, 我真的很困惑 void main() { List<double> list= [1.0,1.0,1.0,1.0,0.8,52.9]; double total = 0.0; for (var item in list) { var all= item+ total; print(all); } } void m

我有一个双打列表,我想显示所有这些相加的结果, 我以前做过,但我不能给那些人看, 事实上,我每次都得到相同的元素 最好的方法是什么, 我真的很困惑

void main() {
  List<double> list= [1.0,1.0,1.0,1.0,0.8,52.9];
  double total = 0.0;
  for (var item in list) {
  
    var all= item+ total;
    print(all);
  }
}
void main(){
列表=[1.0,1.0,1.0,1.0,0.8,52.9];
双倍合计=0.0;
用于(列表中的var项){
var all=项目+总计;
打印(全部);
}
}

请告诉我我做错了什么

您在
for
循环中声明了一个
all
变量。每次循环运行时都会重新声明它。如果您只需要总值,只需将其添加到每个循环中并打印出来:

void main() {
  List<double> list= [1.0,1.0,1.0,1.0,0.8,52.9];
  double total = 0.0;
  for (var item in list) {
    total = item + total;
    print(total);
  }
}
void main(){
列表=[1.0,1.0,1.0,1.0,0.8,52.9];
双倍合计=0.0;
用于(列表中的var项){
总计=项目+总计;
印刷品(总数);
}
}

for
循环中声明了一个
all
变量。每次循环运行时都会重新声明它。如果您只需要总值,只需将其添加到每个循环中并打印出来:

void main() {
  List<double> list= [1.0,1.0,1.0,1.0,0.8,52.9];
  double total = 0.0;
  for (var item in list) {
    total = item + total;
    print(total);
  }
}
void main(){
列表=[1.0,1.0,1.0,1.0,0.8,52.9];
双倍合计=0.0;
用于(列表中的var项){
总计=项目+总计;
印刷品(总数);
}
}

在若昂的回答中添加:

最好的答案可能是:

var result = list.reduce((a,b) => a+b));

列表的reduce方法对列表具有相同的效果。

在João的答案中添加:

最好的答案可能是:

var result = list.reduce((a,b) => a+b));

列表的reduce方法对列表具有相同的效果。

您也可以使用
fold
方法:

void main() {
  final list = [1.0,1.0,1.0,1.0,0.8,52.9];
  final result = list.fold(0, (a, b) => a + b);
  print(result);
}

您也可以使用
fold
方法:

void main() {
  final list = [1.0,1.0,1.0,1.0,0.8,52.9];
  final result = list.fold(0, (a, b) => a + b);
  print(result);
}

从技术上讲,这是一个理想的答案,但考虑到用户似乎没有编写代码的经验,我想说,这个答案可能不会真正帮助他理解自己的错误。从技术上讲,这是一个理想的答案,但考虑到用户似乎没有编写代码的经验,我想说的是,这个答案可能不会真正帮助他理解自己的错误。