Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.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 列表作为可选构造函数参数在Dart中为空_List_Flutter_Dart_Constructor - Fatal编程技术网

List 列表作为可选构造函数参数在Dart中为空

List 列表作为可选构造函数参数在Dart中为空,list,flutter,dart,constructor,List,Flutter,Dart,Constructor,在下面的示例中,当没有参数传递给构造函数时,为什么myListnull 我在类中将其声明为空(可增长)列表 class MyListClass { List myList = []; MyListClass({this.myList}); } void main() { final obj = MyListClass(); assert(obj.myList != null); } 传递可选列表但默认为空列表的最佳方式是什么 我知道你可以做到以下几点,但也许有更好的办法 M

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

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

class MyListClass {
  List myList = [];

  MyListClass({this.myList});
}

void main() {
  final obj = MyListClass();
  assert(obj.myList != null);
}
传递可选列表但默认为空列表的最佳方式是什么

我知道你可以做到以下几点,但也许有更好的办法

MyListClass({this.myList}) {
  this.myList ??= [];
}
UDATE:
这是预期的行为,
null
如果未根据指定值,则为默认值。

编辑:使用初始化器:

class MyListClass {
  List myList;

  MyListClass({List list}) : myList = list ?? [];
}

编辑:使用初始化器:

class MyListClass {
  List myList;

  MyListClass({List list}) : myList = list ?? [];
}

您没有将任何内容传递给将值定向到myList的构造函数,这就是为什么会得到null(null==empty)好的,我认为因为它是可选的,所以在没有传递参数时应该保持不变。我更新了我的问题,以找到解决此问题的最佳解决方案。也许。我发布了一个github问题。发布了一个指向该github问题的链接,然后您没有将任何内容传递给将值定向到myList的构造函数,这就是为什么会得到null(null==empty)好的,我认为由于它是可选的,所以在没有传递任何参数时应该保持不变。我更新了我的问题,以找到解决此问题的最佳解决方案。也许。我发布了一个github问题。发布一个指向该github问题的链接,然后这会创建一个不可修改的列表,我想修改它。您可以修改它,但不能将其设置为引用另一个列表,这不是您想要的吗?只是尝试了一下,得到了“未处理的异常:不支持的操作:无法添加到不可修改的列表”这是一个解决方案,但是它有点冗长,如果您想传递空值,就不能传递空值。我仍然感到惊讶的是,我的例子并没有像预期的那样有效。我在dart上提交了一个github问题。我会接受这个答案,因为我的错误是预期的行为。根据这创建了一个不可修改的列表,我想修改它。你可以修改它,但你不能将它设置为引用另一个列表,这不是你想要的吗?只是尝试了一下,然后得到了答案“未处理的异常:不支持的操作:无法添加到不可修改的列表”这是一个解决方案,但它有点冗长,如果需要,您不能传递空值。我仍然很惊讶我的示例没有按预期工作。我在dart上提交了一个github问题。我将接受此答案,因为我的错误是根据的预期行为