E0049

未匹配的标注

尝试实现具有错误数量的类型或 const 参数的 trait 方法。

错误代码示例:


trait Foo {
    fn foo<T: Default>(x: T) -> Self;
}

struct Bar;

// error: 方法 `foo` 具有 0 个类型参数,但其 trait 中声明了一个
// 类型参数
impl Foo for Bar {
    fn foo(x: bool) -> Self { Bar }
}

例如, Foo trait 具有类型参数为 T 的方法 foo,但是 foo 的实现 Bar 缺失了这个参数。要修复此错误,它们得具有相同的类型参数:


trait Foo {
    fn foo<T: Default>(x: T) -> Self;
}

struct Bar;

impl Foo for Bar {
    fn foo<T: Default>(x: T) -> Self { // 没问题!
        Bar
    }
}

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

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

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

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

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


暂无话题~