rust-based-os-comp2022 icon indicating copy to clipboard operation
rust-based-os-comp2022 copied to clipboard

Rust好像在很多地方都会自动地 解引用, 加引用, 那么什么时候需要我们手动去解引用呢?

Open yoyoLooming opened this issue 3 years ago • 2 comments

🦝

yoyoLooming avatar Jul 05 '22 23:07 yoyoLooming

先得知道编译器什么时候会自动解引用1. 调用方法时 调用方法,编译器会根据一定的规则查找方法,这期间会尝试转换为各种类型,直到找到方法。 参考:https://nomicon.purewhite.io/dot-operator.html 2. 再借用 可变引用赋值时,可能发生再借用。即对可变引用T自动&*T/&mut *T,达到不消耗可变引用所有权的目的。 参考:https://course.rs/advance/lifetime/advance.html#reborrow-%E5%86%8D%E5%80%9F%E7%94%A8

除了这两种自动解引用的情景之外,都要手动解引用。比如想要赋值,或者修改引用指向的值。 欢迎补充!

Mota-Link avatar Jul 06 '22 02:07 Mota-Link

先得知道编译器什么之后会自动解引用1. 调用方法时 调用方法,编译器会根据一定的规则查找方法,这期间会尝试转换为各种类型,直到找到方法。 参考:https://nomicon.purewhite.io/dot-operator.html 2. 再借用 可变引用赋值时,可能发生再借用。即对可变引用T自动&*T/&mut *T,达到不消耗可变引用所有权的目的。 参考:https://course.rs/advance/lifetime/advance.html#reborrow-%E5%86%8D%E5%80%9F%E7%94%A8

除了这两种自动解引用的情景之外,都要手动解引用。比如想要赋值,或者修改引用指向的值。 欢迎补充!

谢谢你! 😺

yoyoLooming avatar Jul 06 '22 03:07 yoyoLooming