为什么我们需要在匹配中取消引用可变引用来更改它?

mmm*_*mmm 2 rust

我正在阅读Rust编程语言,有一点不清楚:

let mut mut_value = 6;
match mut_value {
    ref mut m => {
        *m += 10;
        println!("We added 10. `mut_value`: {:?}", m);
    },
}
Run Code Online (Sandbox Code Playgroud)

为什么我们需要取消引用它来改变它?我们已经有了一个可变的参考.

jhp*_*ING 7

引用是地址指针.如果您只是这样做m += 10,那么您将更改内存地址(Rust不会让您不这样做unsafe).你想要做的是改变价值m.那么价值在哪里?按照指针!你通过解除引用来做到这一点.