rust新手,看到隐式重借用,有些不解,望能够帮忙解答。 下面代码都是重复可变引用,但为什么通过隐式重借用方式,就可以实现多个可变引用?rust不是明确说同一时间只能有一个可变引用吗? // err 能够理解,rust明确不能有两个可变引用。 fn compile_err() { let mut s = String::from("hello"); let r1 = &mut s; { let r2 = &mut s; dbg!(r2); } dbg!(r1); // compile ERR } // 但通过隐式重借用,为啥就可以,(*r1) 解应用的最终对应的不还是 s? fn compile_ok() { let mut s = String::from("hello"); let r1 = &mut s; { let r2 = &mut (*r1); dbg!(r2); } dbg!(r1); // compile OK }