根据可空值创建可空对象
Create nullable object based on nullable value
我必须创建一个具有可为空属性的域 class 对象。此创建是原始 class.
的扩展
例如:域class
Meeting({required String id, required Datetime date, Example? example})
Example 后面是一个 class 像这样:Example(String value)
MeetingPrimitive.dart:
extension MeetingPrimitiveX on Meeting {
Meeting toDomain() {
return Meeting(
id: id,
date: date,
example: example == null ? null : Example(example)
}
}
我的问题是,我怎样才能简化这个:
example == null ? null : Example(example)
'''
thanks in advance
你通常不能。
您可以通过多种方式更改,但没有什么比这里的更直接了。
一个变体是:
extension DoWith<T> on T {
R doWith<R>(R Function(T) action) => action(this);
}
有了它,你可以写:
example?.doWith(Example.new)
如果 example
是非 null
.
,则有条件地调用 Example.new
构造函数(未命名构造函数的 tear-off)
稍微短一些,需要一个辅助函数,而且...实际上在 IMO 上可读性并不高。
我必须创建一个具有可为空属性的域 class 对象。此创建是原始 class.
的扩展例如:域class
Meeting({required String id, required Datetime date, Example? example})
Example 后面是一个 class 像这样:Example(String value)
MeetingPrimitive.dart:
extension MeetingPrimitiveX on Meeting {
Meeting toDomain() {
return Meeting(
id: id,
date: date,
example: example == null ? null : Example(example)
}
}
我的问题是,我怎样才能简化这个:
example == null ? null : Example(example)
'''
thanks in advance
你通常不能。 您可以通过多种方式更改,但没有什么比这里的更直接了。
一个变体是:
extension DoWith<T> on T {
R doWith<R>(R Function(T) action) => action(this);
}
有了它,你可以写:
example?.doWith(Example.new)
如果 example
是非 null
.
Example.new
构造函数(未命名构造函数的 tear-off)
稍微短一些,需要一个辅助函数,而且...实际上在 IMO 上可读性并不高。