我是新來的鏽,我不明白下面的代碼: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