E0116

未匹配的标注

为当前crate之外的类型定义固有实现

错误代码示例:

impl Vec<u8> { } // error

你只能在定义该类型的 crate 中为该类型定义一个固有实现。例如,由于 Vec 是在标准库中定义的,所以不允许像上述那样使用 impl 块。

要解决此问题,你可以:

  • 定义一个具有关联函数/类型/常量的 trait ,并且为所想要的类型实现 trait 。
  • 定义一个包装该类型的新类型,并在该新类型上定义一个实现。
    请注意,在这里无法使用 type 关键字,因为 type 仅引入了类型别名:
type Bytes = Vec<u8>;

impl Bytes { } // error, 本质上和上面一样

本文章首发在 LearnKu.com 网站上。

本译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

原文地址:https://learnku.com/docs/rust-rcei-2020/...

译文地址:https://learnku.com/docs/rust-rcei-2020/...

上一篇 下一篇
贡献者:1
讨论数量: 0
发起讨论 只看当前版本


暂无话题~