gpt4 book ai didi

dart - bool 值作为 copyWith 的可选参数

转载 作者:IT王子 更新时间:2023-10-29 07:00:44 24 4
gpt4 key购买 nike

我正在尝试实现复制构造函数/方法,但参数之一是 Boolean。我环顾四周,有人提到使用 ?value 来确定是否提供了值,但它没有编译:

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 引发语法错误:意外文本“?”。

最佳答案

isEnabled = ?isEnabled ?? data.isEnabled

?? 已经检查了 null,不需要 ? 前缀。

这应该做你想做的

isEnabled = isEnabled ?? data.isEnabled

没有必要区别对待 bool 值。

什么 ? 或更好的 ?. 例如在

foo?.isEnabled

是,当 foonull 时,它不会尝试评估 isEnabled 而是返回 null ,因为 null 没有 isEnabled getter,这会导致异常。

关于dart - bool 值作为 copyWith 的可选参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51297910/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com