【问题标题】:What is the owner of literal reference such as &4 in Rust? [duplicate]Rust 中的 &4 等文字引用的所有者是什么? [复制]
【发布时间】:2019-08-06 10:53:33
【问题描述】:

通常,特定值只有一个所有者(Rc<T> 之类的内容除外)。那么下面的值4 的所有者是什么,因为变量myVar 是从某个东西借来的?我想知道那是什么东西。

let myVar = &4;

【问题讨论】:

  • 它不属于任何东西。 &4 只是对某事的引用。在这种情况下,引用了 4 所在的某个内存位置。
  • 它是静态的。没有所有者,因为它位于静态内存中,因此在应用程序期间存在。
  • 或者,您可以将其视为由程序本身“拥有”。
  • 以上都说得通,被程序本身“拥有”让我很清楚。谢谢大家。

标签: pointers reference rust


【解决方案1】:

文字,是他们:

  • 数字字面量,如4
  • 字符串字面量,如"Hello, World"

有一个'static 生命周期,因为它们的值被硬编码到库或可执行文件本身中。例如,在 Linux 上,它们可以在 ELF 二进制文件的 .text 段或 .rodata 段中找到。

从这个意义上说,您可以将它们视为由程序本身拥有。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-07-16
    • 2018-12-23
    • 2022-01-21
    • 2020-10-20
    • 1970-01-01
    • 2021-02-14
    • 1970-01-01
    相关资源
    最近更新 更多