提问人:Daan van der Plas 提问时间:10/21/2022 最后编辑:frankplowDaan van der Plas 更新时间:10/21/2022 访问量:283
可变引用 rust [duplicate]
Mutable references rust [duplicate]
问:
fn main() {
let mut x = 42;
let y = &x;
*y = 5;
}
这不会编译。为什么它必须是 a to ?
在我的理解中,引用(即存储 of 值的地址)不会改变,只会改变存储在该地址上的值。并且是.&mut
x
x
x
mut
编译:
fn main() {
let mut x = 42;
let y = &mut x;
*y = 5;
}
答:
1赞
frankplow
10/21/2022
#1
的含义是可以改变值的引用,而不是本身可以改变的引用。 表示无法更改值的引用。一个本身可以变异的引用会写成这样(尽管在实践中这并不常见)。&mut
&
let mut y = &x;
在我的理解中......引用(即存储 x 值的地址)......
我认为这里的混淆源于这样一个事实,即引用与内存地址或指针并不完全相同。它更具概念性,并提供了更多保证 - 例如,引用将始终指向给定类型的有效对象。
评论
mut
&x
&mut x
y
x
let x = 42; let y = &x
*y = 5
mut