Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/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
List 初始化列表以避免潜在错误_List_Flutter_Dart - Fatal编程技术网

List 初始化列表以避免潜在错误

List 初始化列表以避免潜在错误,list,flutter,dart,List,Flutter,Dart,此函数 List<int> _calculateTrips() { List<int> trips = []; trips = List.generate( 30, (index) { var counter = 0; var aDay = DateTime.now().subtract(Duration(days: index)); for (var aWalk in walks)

此函数

List<int> _calculateTrips() {
    List<int> trips = [];
    trips = List.generate(
      30,
      (index) {
        var counter = 0;
        var aDay = DateTime.now().subtract(Duration(days: index));
        for (var aWalk in walks) {
          if ((aDay.month == aWalk.month) && (aDay.day == aWalk.day)) {
            counter++;
          }
        }
        trips.add(counter);
      },
    );
    return trips;
  }
List\u calculateTrips(){
列出行程=[];
trips=List.generate(
30,
(索引){
var计数器=0;
var aDay=DateTime.now().subtract(持续时间(天数:索引));
用于(步行时的var aWalk){
如果((日月==预警月)&&(日日==预警日)){
计数器++;
}
}
添加(计数器);
},
);
回程;
}

创建错误
正文可能正常完成,导致返回null,但返回类型可能是不可为null的类型。请尝试在结尾添加return或throw语句。
我很难理解此消息,因为(a)我认为我在函数开头初始化了列表,以及(b)我想我在结尾有一个return语句。

问题在于传递给
List.generate()
的函数。它需要一个
E函数(int)
,其中
E
是元素的类型,例如:

final evernumbers=List.generate(10,(索引){
收益指数*2;
});
您的问题来自行程。添加(计数器):

List trips=[];
行程=列表生成(30,(索引){
最终行程=计算行程(指数);
trips.add(trip);
})
内部函数必须是
int函数(int)
(即接受
int
,并返回
int
)的函数,因为您的列表是
列表

但是,您的内部函数从不返回任何内容

只需更换
trips.add(计数器)
返回计数器
应该可以解决这个错误。您可能还想稍微重构一下您的函数:

List\u calculateTrips()=>List.generate(30,(索引{
var计数器=0;
var aDay=DateTime.now().subtract(持续时间(天数:索引));
用于(步行时的var aWalk){
如果((日月==预警月)&&(日日==预警日)){
计数器++;
}
}
返回计数器;
});

非常有用。谢谢!