如何为非常量参数设置默认值?
我想出了这个:
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();
}
Run Code Online (Sandbox Code Playgroud)
我想知道它是否可以缩短,例如我试过这个:
class Todo {
final DateTime createdAt;
final DateTime updatedAt;
Todo({DateTime createdAt, DateTime updatedAt})
: createdAt ??= DateTime.now(),
updatedAt ??= DateTime.now();
}
Run Code Online (Sandbox Code Playgroud)
但那没用.
Gün*_*uer 10
这是一个可以使用的较短版本:
class Todo {
final DateTime createdAt;
final DateTime updatedAt;
Todo({DateTime createdAt, DateTime updatedAt})
: createdAt = createdAt ?? DateTime.now(),
updatedAt = updatedAt ?? DateTime.now();
}
Run Code Online (Sandbox Code Playgroud)
你的版本没有用,因为在
createdAt = createdAt ?? DateTime.now()
Run Code Online (Sandbox Code Playgroud)
第一个和第二个createdAt是指2个不同的变量.
前者是隐含的this.createdAt,后者是参数值.
| 归档时间: |
|
| 查看次数: |
1178 次 |
| 最近记录: |