gpt4 book ai didi

rust - "autoref"在 Rust 中是什么意思?

转载 作者:行者123 更新时间:2023-12-01 22:56:32 27 4
gpt4 key购买 nike

我看到一个编译错误:

cannot infer an appropriate lifetime for autoref due to conflicting requirements

我可以在 Internet 上找到很多关于此错误的其他解释,但我仍然不清楚其中的一部分:“autoref”在这种情况下是什么意思?

最佳答案

Autoref 发生在当你尝试使用方法语法调用函数时,当你有一个值时,但函数采用 &self&mut self -- 方法接收者是自动引用而不是按值给出。例如:

struct Foo;

impl Foo {
pub fn by_value(self) {}
pub fn by_ref(&self) {}
pub fn by_mut(&mut self) {}
}

fn main() {
let foo = Foo;

// Autoref to &mut. These two lines are equivalent.
foo.by_mut();
Foo::by_mut(&mut foo);

// Autoref to &. These two lines are equivalent.
foo.by_ref();
Foo::by_ref(&foo);

// No autoref since self is received by value.
foo.by_value();
}

因此,在您的情况下,您正在做类似的事情,但编译器无法为不会导致借用检查问题的引用提供生命周期。

关于rust - "autoref"在 Rust 中是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73076791/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com