根据可空值创建可空对象

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 上可读性并不高。