学习颤动

时间:2020-11-03 03:13:44

标签: flutter dart

我是塞内加尔的阿里。我今年60岁(也许这是我真正的问题-笑脸!!)。

我正在学习Flutter和Dart。今天,我想使用给定数据模型的列表(它的名称是Mortalite,请参见下面的代码)。 我尝试使用dartpad。我非常难过,因为我不明白为什么以下代码片段无法运行:

//https://www.dartpad.dev/

void main(){
  print('Beginning');
  
  List<Mortalite>pertes;
  
  var causes = ['Bla0', 'Bla1', 'Bla2', 'Bla3'];
  var lstDate = ['21/09/2020', '22/09/2020', '23/09/2020', '24/09/2020'];
  var perteInst = [2, 4, 3, 1];
  var total=0;

  for (int i = 0; i < 4; i++) {
    total += perteInst[i];
    print(i);                           // prints only '0'
    
    pertes[i] = new Mortalite(
      causesPerte: causes[i],
      datePerte: lstDate[i], 
      perteInstant:perteInst[i],
      totalPertes: total);
      };
   print(pertes.length);                // nothing printed
   print('Why?');                       // nothing printed
 }

class Mortalite {
  String datePerte;
  String causesPerte;
  int perteInstant; // pertes du jour
  int totalPertes; // Total des pertes.
  Mortalite(
    {this.datePerte, 
     this.causesPerte, 
     this.perteInstant, 
     this.totalPertes}
  );
}

非常感谢您的帮助。 A.KOTE

1 个答案:

答案 0 :(得分:2)

上面的代码不起作用的原因是因为您已初始化List pertes,并且要传递给pertes的元素。当您尝试将pertes的索引传递给0时,它找不到它并且抛出范围错误,因为pertes还没有索引0。请查看下面的修复程序,如果您需要任何帮助,请告诉我。

void main(){
  print('Beginning');
  
  List<Mortalite>pertes=[];
  
  var causes = ['Bla0', 'Bla1', 'Bla2', 'Bla3'];
  var lstDate = ['21/09/2020', '22/09/2020', '23/09/2020', '24/09/2020'];
  var perteInst = [2, 4, 3, 1];
  var total=0;

  for (int i = 0; i < causes.length; i++) {
    total += perteInst[i];                           // prints only '0'
    
    pertes.add (new Mortalite(
      causesPerte: causes[i],
      datePerte: lstDate[i], 
      perteInstant:perteInst[i],
      totalPertes: total));
                };
   print(pertes.length);                // nothing printed                      // nothing printed
 }

class Mortalite {
  String datePerte;
  String causesPerte;
  int perteInstant; // pertes du jour
  int totalPertes; // Total des pertes.
  Mortalite(
    {this.datePerte, 
     this.causesPerte, 
     this.perteInstant, 
     this.totalPertes}
  );
}