E0055

未匹配的标注

在方法调用期间,一个值会根据需要自动解引用多次,以使该值的类型与方法的接收者匹配。该问题是编译器只会试图解引用数次直到达到递归限制(可以通过设置 recursion_limit 属性来定义限制)。

举一个手动制造多次解引用例子:


#![recursion_limit="4"]//4次解引用为上限

struct Foo;

impl Foo {
    fn foo(&self) {}
}

fn main() {
    let foo = Foo;
    let ref_foo = &&&&&Foo;

    // error, `&&&&&Foo` 达到了解引用的递归上限
    ref_foo.foo();
}

一种修复方法可能是增加递归限制。注意,可以创建解引用的无限递归,在这种情况下,唯一的解决办法是以某种方式打破(无限)递归。

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

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

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

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

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


暂无话题~