我是新来的锈,我不明白下面的代码:Rust中星号的用法是什么?
let mut x = 5;
{
let y = &mut x;
*y += 1;
}
println!("{}", x);
说明从Rust site:
您还会注意到,我们增加了一个星号(
*
)在y
的前面,使其为*y
,这是因为y
是&mut
的参考。您还需要使用astrisks [原文]来访问参考内容。
如果*y
是一个参考,为什么下面的代码工作
fn main() {
let mut x = 5;
{
let y = &mut x;
println!("{}", y);
}
}
我知道我不是在这里修改的值,但有什么区别,为什么 会y += 1;
不行?
可能值得一读:[自动解除引用](http://stackoverflow.com/documentation/rust/2574/auto-dereferencing#t=201611101618367290575)(从本网站的Rust文档部分),它解释了一些在不需要'*'的情况下。 – Aurora0001