Default
特征可以是#[derive(..)]
d只有当派生类型的内容也实现Default
。这意味着特质越容易使用,实施越多。不过,我注意到std
中有些类型是缺少的实现,虽然它们有完全有效的默认值(有时取决于泛型参数)。为什么默认不实施互斥,RWLock,CondVar,持续时间?
Mutex<T>
和RWLock<T>
可以通过new(_)
(where T: Default
) 实施
CondVar
可以简单地实现由CondVar::new()
Duration
可以得出(以获得零时间,这是一个合理的默认)
这些遗漏是否存在技术原因?
我不同意*零持续时间,这是一个合理的默认*,但其他人,当然。 – Shepmaster
为什么?你认为根本没有明智的违约,或者你认为有更明智的违约? – llogiq
我会说没有明智的默认设置。大多数时候,我认为关于超时的持续时间以及零超时对我来说都没有意义,也不会选择任何其他值。虽然我确实看到这个数字实现'Default'为'0',所以¯\\ _(ツ)_ /¯。 – Shepmaster