我是塞内加尔的阿里。我今年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}
);
}
非常感谢您的帮助。科特
最佳答案
上面的代码不起作用的原因是因为您已初始化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}
);
}