如何在构造函数中初始化 List/Map?
How to initialize List/Map in a constructor?
我知道如何在构造函数中初始化其他变量,例如 int 或 String,但我不知道如何为 List 和 Map 初始化。
class WhosebugQuestion{
WhosebugQuestion({this.test='', this.map=?, this.list=?});
String test;
Map map;
List list;
}
我应该用什么替换问号?
谢谢。
答案取决于您的默认列表和地图是否不变。假设您的列表是,但地图不是。
你会写:
class WhosebugQuestion {
WhosebugQuestion({
this.test = '',
Map map,
this.list = const [1, 2, 3],
}) {
this.map = map ?? {};
}
String test;
Map map;
List list;
}
如果list可选参数被省略,那么它会被初始化为[1, 2, 3]
。如果地图被省略或为 null,它将使用可变的空地图进行初始化。
我知道如何在构造函数中初始化其他变量,例如 int 或 String,但我不知道如何为 List 和 Map 初始化。
class WhosebugQuestion{
WhosebugQuestion({this.test='', this.map=?, this.list=?});
String test;
Map map;
List list;
}
我应该用什么替换问号?
谢谢。
答案取决于您的默认列表和地图是否不变。假设您的列表是,但地图不是。
你会写:
class WhosebugQuestion {
WhosebugQuestion({
this.test = '',
Map map,
this.list = const [1, 2, 3],
}) {
this.map = map ?? {};
}
String test;
Map map;
List list;
}
如果list可选参数被省略,那么它会被初始化为[1, 2, 3]
。如果地图被省略或为 null,它将使用可变的空地图进行初始化。