Dart 中作为可选构造函数参数的列表为 null

Erl*_*end 1 constructor list dart flutter

在下面的示例中,为什么myList null没有向构造函数传递参数?

我在类中将其声明为空(可增长)列表。

class MyListClass {
  List myList = [];

  MyListClass({this.myList});
}

void main() {
  final obj = MyListClass();
  assert(obj.myList != null);
}
Run Code Online (Sandbox Code Playgroud)

传递可选列表但默认为空列表的最佳方法是什么?

我知道你可以执行以下操作,但也许有更好的方法?

MyListClass({this.myList}) {
  this.myList ??= [];
}
Run Code Online (Sandbox Code Playgroud)

UDATE:这是预期的行为,null如果没有根据this指定值,则这是默认行为。

Hai*_*sen 6

编辑:使用初始化器:

class MyListClass {
  List myList;

  MyListClass({List list}) : myList = list ?? [];
}
Run Code Online (Sandbox Code Playgroud)