我正在努力理解 Rust 的所有权和借用模型,但对以下内容感到困惑:
let mut x: i32 = 1;
let ref_x = &mut x;
let refref_x = &mut *ref_x;
*refref_x = 2;
*ref_x = 3;
Run Code Online (Sandbox Code Playgroud)
据我所知,我实际上正在创建两个单独的可变引用x
。为什么这段代码在避免通过指针间接寻址并仅将第 3 行更改为
let refref_x = &mut x;
Run Code Online (Sandbox Code Playgroud)
显然不是?我是否误解了中心概念,或者编译器是否在后台添加了一些魔法?