Flutter类中如何通过初始化列表为多个DateTime参数设置默认值
实现方法
初始化列表支持同时为多个字段赋值,多个赋值逻辑之间用英文逗号分隔即可,你可以直接参考下方完整代码:
class Reminder { final String name; final String type; final DateTime startDate; final String repeatFrequency; final DateTime endDate; Reminder({ this.name = "", this.type = "", DateTime? startDate, this.repeatFrequency = "", DateTime? endDate, }) : startDate = startDate ?? DateTime.utc(2021, 1, 1), endDate = endDate ?? DateTime.utc(2021, 1, 1); }
补充说明
- 这里用Dart的空合并运算符
??替代了三元表达式,写法更简洁,效果和你之前写的startDate != null ? startDate : 默认值完全一致 - 如果你希望直接在参数位设置默认值,也可以给默认的
DateTime.utc加上const修饰,同样符合Dart「可选参数默认值必须为常量」的要求,写法如下:
Reminder({ this.name = "", this.type = "", this.startDate = const DateTime.utc(2021, 1, 1), this.repeatFrequency = "", this.endDate = const DateTime.utc(2021, 1, 1), });
内容的提问来源于stack exchange,提问作者davenz
相关产品推荐
相关产品推荐

