gpt4 book ai didi

garbage-collection - 为什么 Rust 需要返回静态大小?

转载 作者:行者123 更新时间:2023-11-29 08:34:16 24 4
gpt4 key购买 nike

我认为 Rust 的一大特点是它是一种类似于 C 的系统语言,但带有垃圾收集器。如果是这种情况,为什么需要返回静态大小的值(或使用我收集到的 Box)?

最佳答案

Why does Rust need to return static sizes?

每种语言中的每个值都需要有一个静态大小。这就是编译器/解释器/运行时/虚拟机/硬件知道如何访问构成值的位的方式。

在许多语言中,每个值都相当于一个 Rust Box,因此它们都占用一个或两个指针的空间。这些值的静态已知大小允许一个间接层,它可以指向具有运行时确定大小的东西。

在 Rust(以及 C、C++,可能还有其他系统语言)中,您还可以直接在堆栈上存储任意值,不装箱。在这些情况下,您仍然需要知道该值将占用的大小。

这是一种简化,因为某些语言允许某些特定值驻留在堆栈中,而其他语言则将某些值类型“嵌入”在固定大小的间接寻址中。这些技巧通常是出于性能原因。

but with a garbage collector

Rust does not have a garbage collector .它确实有智能指针,可以在指针超出范围时释放资源。

Box是明显的智能指针,但也有 RcArc .

关于garbage-collection - 为什么 Rust 需要返回静态大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40115260/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com