代码之家  ›  专栏  ›  技术社区  ›  aqwert

Boolean作为copyWith的可选参数

  •  1
  • aqwert  · 技术社区  · 8 年前

    我试图实现一个copy-constructir/方法,但其中一个参数是 Boolean .我环顾四周,有人提到过使用吗?值以确定是否提供了该值,但不编译:

    class Model {
      final String id;
      final bool isEnabled;
    
      Model.copyFrom(Model data,
          {String id,
          bool isEnabled})
       : id = id ?? data.id,
         isEnabled = ?isEnabled ?? data.isEnabled);
    
    }
    

    如果 isEnabled 不提供 copyFrom 我怎么告诉它用那个 data .如果未提供值,则需要保留该值(无论是真还是假)。

    ?isEnabled 引发语法错误:意外的文本“?”.

    1 回复  |  直到 8 年前
        1
  •  1
  •   Günter Zöchbauer    8 年前

    isEnabled = ?isEnabled ?? data.isEnabled
    

    ?? null ?

    isEnabled = isEnabled ?? data.isEnabled
    

    ?.

    foo?.isEnabled
    

    isEnabled foo