List<Object>当在flutter中使用空安全而不使用关键字时,如何在构造函数中初始化 a required?
我有以下代码:
List<String> test = [];
MyConstructor({this.test});
有一个编译错误告诉我添加required关键字,但如果我这样做:
List<String> test = [];
MyConstructor({this.test=[]});
这给了我一个错误the default value of a named param must be constant。
当然,我可以放置required关键字,一切都很好,但是在我的所有构造函数中,我需要添加一个空,List这很无聊,因为只有 10% 的时间我需要传递一个非空List。
您能简单地确认该required关键字是唯一的选择吗?
谢谢
使用const初始化器:
List<String> test;
MyConstructor({this.test = const []});
然而,如果你需要改变你的List后来(并且如果你的List成员也是的话,这将变得不可能final),这会很尴尬。
将参数标记为required。
使参数(但不是成员)可为空:
List<String> test;
MyConstructor({List<String>? test})
  : test = test ?? [];
另请参阅:可选参数的默认值必须是常量
使成员和参数都可为空。
| 归档时间: | 
 | 
| 查看次数: | 7781 次 | 
| 最近记录: |