Rust 程序设计语言 简体中文版 1.85.0Vec都定义于标准库中,它们并不位于 aggregator crate 本地作用域中。这个限制是被称为相干性(coherence)的程序属性的一部分,或者更具 体的说是 孤儿规则(orphan rule),其得名于不存在父类型。这条规则确保了其他人编写的代 码不会破坏你的代码,反之亦然。没有这条规则的话,两个 crate 可以分别对相同类型实现相 同的 trait,而 Rust 将无从得知应该使用哪一个实现。 outline_print 将其显示在由星号组成的边框内。 使用 newtype 模式在外部类型上实现外部 trait 在第十章的 “为类型实现 trait” 部分,我们提到了孤儿规则(orphan rule),它规定只有当 trait 或类型至少有一方或两者都对于当前 crate 是本地时,才能在该类型上实现该 trait。一 个绕开这个限制的方法是使用 newtype 模式(newtype pattern),它涉及到在一个元组结构 0 码力 | 562 页 | 3.23 MB | 23 天前3
共 1 条
- 1













