只有在派生类型的内容也实现时,Default特征才可以是#[derive(..)]d Default.这意味着特征越实施越容易使用.但是,我注意到某些类型std缺少实现,尽管它们具有完全有效的默认值(有时取决于通用参数).
Mutex<T>并且RWLock<T>可以通过new(_)(where T: Default)实现CondVar 可以简单地实现 CondVar::new()Duration可以导出(获得零持续时间,这些遗漏有技术原因吗?
有些人对实现提出了类似的问题Debug,请参阅\xe2\x80\x9cMissing Debug Implements \xe2\x80\x94 #31869\xe2\x80\x9d ,它也只能在与Default.
不幸的是,相应的 PR \xe2\x80\x9c libcore: add Debugimplements to most Missing types #32054 \xe2\x80\x9d 似乎表明某些类型不仅仅是因为没有人为它们Debug编写实现。Debug其他一些类型对于实现应该做什么存在争议,并且对于将它们添加到标准库中存在一些担忧。
可以合理地假设至少某些类型不是Default出于相同的非技术原因。
| 归档时间: |
|
| 查看次数: |
137 次 |
| 最近记录: |