Rust的引用(Reference)

Rust的引用(Reference)

Rust 提供引用操作符 &,可以直接获取表达式的存储单元地址,即内存地址。

引用本质上是一种非空指针。

let a = [1,2,3]; let b = &a; println!("{:p}", b); // 0x7ffcbc067704 // 要获取可变引用,必须先声明可变绑定 let mut c = vec![1,2,3]; // 通过 &mut 得到可变引用 let d = &mut c; d.push(4); println!("{:?}", d); // [1, 2, 3, 4] let e = &42; assert_eq!(42, *e);

从语义上说,不管是 &a 还是 &mut c,都是对原有变量的所有权的借用,所以引用也被称为借用。