参考值是否在 Rust 中复制?

Exa*_*der 4 reference rust

我是否正确假设,对于以下代码

let a = vec![1, 2, 3];
let b = &a;
let c = b;
Run Code Online (Sandbox Code Playgroud)

内存呈现将是这样的,假设值b是“B”?

let a = vec![1, 2, 3];
let b = &a;
let c = b;
Run Code Online (Sandbox Code Playgroud)

我只询问不可变引用,因为据我所知,只能有 1 个可变引用。

Mat*_* M. 5

是的,这是正确的。

在 Rust 术语中,&Tis Copy,这意味着它可以在不转移所有权的情况下按位复制。

  • @raj:很好的问题。生命周期是 _type_ 的一部分,因此也会被复制。然而,当调用函数时,Rust 可能会通过重新借用来“对齐”生命周期,因此看起来生命周期可能发生了变化,这可能是您感到困惑的根源。 (2认同)