在讲引用以前先介绍一下全部权。python
Rust中每个值都有且仅有一个全部者,当其全部者离开做用域后,这个值就被丢弃。blog
let s1 = String::from("hello"); let s2 = s1;
上述代码中s1将无效,由于改变量是存储在堆上的。作用域
let mut s = String::from("hello"); let s1 = &mut s; let s2 = &mut s;
该代码会编译报错。 编译
由于在特定做用域中的特定数据有且只有一个可变引用。class
也不能在拥有不可变引用的同时拥有可变引用。变量
let mut str1 = String::from("hello"); let borr_str1 = &mut str1;
上述代码中str1将不能再使用,由于str1也属于可变引用。引用