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

时间:2017-11-28 22:32:32

标签: rust

我正在阅读The Rust Programming Language,有一点不清楚:

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

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

1 个答案:

答案 0 :(得分:7)

引用是地址指针。如果您只是m += 10,那么您就是要更改内存地址(Rust不允许您在没有unsafe的情况下执行此操作)。您要做的是更改m处的。那么价值在哪里呢?按照指针!您可以通过解除引用来完成此操作。