繁体   English   中英

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

[英]Why does Rust need to return static sizes?

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

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

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

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

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

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

但是有垃圾收集器

Rust没有垃圾收集器 它确实有智能指针,当指针超出范围时会释放资源。

Box是显而易见的智能指针,但也有RcArc

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM