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

Rust 为什么我们需要在匹配中取消对可变引用的引用来更改它?,rust,Rust,我正在阅读,有一件事不清楚: let mut mut_value = 6; match mut_value { ref mut m => { *m += 10; println!("We added 10. `mut_value`: {:?}", m); }, } 为什么我们需要取消引用来更改它?我们已经有了一个可变引用。引用是地址指针。如果您只是执行m+=10,那么您将更改内存地址(Rust不允许您在没有不安全的情况下执行此操作)。您要做

我正在阅读,有一件事不清楚:

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

为什么我们需要取消引用来更改它?我们已经有了一个可变引用。

引用是地址指针。如果您只是执行
m+=10
,那么您将更改内存地址(Rust不允许您在没有
不安全的情况下执行此操作)。您要做的是更改
m
处的值。那么价值在哪里呢?跟着指针走!你可以通过取消引用来实现这一点。

lol。太简单了。我不知道为什么这么难:D非常感谢!指针有时很难。掌握一些C语言的知识也会有所帮助!