Rust 引用

在讲引用之前先介绍一下所有权。

Rust中每一个值都有且仅有一个所有者,当其所有者离开作用域后,这个值就被丢弃。

let s1 = String::from("hello");
let s2 = s1;

 上述代码中s1将无效,因为改变量是存储在堆上的。

let mut s = String::from("hello");

let s1 = &mut s;
let s2 = &mut s;

 该代码会编译报错。

 因为在特定作用域中的特定数据有且只有一个可变引用。

 也不能在拥有不可变引用的同时拥有可变引用。

let mut str1 = String::from("hello");
let borr_str1 = &mut str1;

 上述代码中str1将不能再使用,因为str1也属于可变引用。

原文地址:https://www.cnblogs.com/kwebi/p/9401789.html