rust-based-os-comp2022
                                
                                 rust-based-os-comp2022 copied to clipboard
                                
                                    rust-based-os-comp2022 copied to clipboard
                            
                            
                            
                        Rust好像在很多地方都会自动地 解引用, 加引用, 那么什么时候需要我们手动去解引用呢?
🦝
先得知道编译器什么时候会自动解引用:
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
除了这两种自动解引用的情景之外,都要手动解引用。比如想要赋值,或者修改引用指向的值。 欢迎补充!
先得知道编译器什么之后会自动解引用: 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除了这两种自动解引用的情景之外,都要手动解引用。比如想要赋值,或者修改引用指向的值。 欢迎补充!
谢谢你! 😺