Rust - 为什么我们在从 A self 调用 A::func(&self) 时不需要借用 A

Rust - Why we don't need borrow A when calling A::func(&self) from A self

查看代码:

struct A {}

impl A {
    fn a(&self) {}
}

pub fn main() {
    let a = A {};
    a.a();
    A::a(&a);
}

为什么 a.a() 不需要 &A::a(&a) 需要?有什么区别?

在 Rust 中,a.a()A::a(&a) 的语法糖,所以 a 确实在两个调用中都被借用了。点运算符还有很多作用,您可以阅读 here.