如何为非常量参数设置默认值?
我想出了这个:
class Todo {
final DateTime createdAt;
final DateTime updatedAt;
Todo({DateTime createdAt, DateTime updatedAt})
: createdAt = createdAt != null ? null : DateTime.now(),
updatedAt = updatedAt != null ? null : DateTime.now();
}
我想知道它是否可以做得更短,例如我试过这个:
class Todo {
final DateTime createdAt;
final DateTime updatedAt;
Todo({DateTime createdAt, DateTime updatedAt})
: createdAt ??= DateTime.now(),
updatedAt ??= DateTime.now();
}
但这没有用。
最佳答案
这是可以使用的较短版本:
class Todo {
final DateTime createdAt;
final DateTime updatedAt;
Todo({DateTime createdAt, DateTime updatedAt})
: createdAt = createdAt ?? DateTime.now(),
updatedAt = updatedAt ?? DateTime.now();
}
您的版本无效,因为在
createdAt = createdAt ?? DateTime.now()
第一、二
createdAt
引用 2 个不同的变量。前者是隐含的
this.createdAt
后者是参数值。
关于dart - 在 Dart 中设置非常量的默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51280670/