作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我正在尝试实现复制构造函数/方法,但参数之一是 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
是,当 foo
为 null
时,它不会尝试评估 isEnabled
而是返回 null
,因为 null
没有 isEnabled
getter,这会导致异常。
关于dart - bool 值作为 copyWith 的可选参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51297910/
我正在尝试用 Swift 编写这段 JavaScript 代码:k_combinations 到目前为止,我在 Swift 中有这个: import Foundation import Cocoa e
我是一名优秀的程序员,十分优秀!