[英]Why does Rust need to return static sizes?
我认为 Rust 的一大特点是它是一种可与 C 相媲美的系统语言,但具有垃圾收集器。 如果是这种情况,为什么需要返回静态大小的值(或使用我收集的Box
)?
为什么 Rust 需要返回静态大小?
每种语言中的每个值都需要有一个静态大小。 这就是编译器/解释器/运行时/虚拟机/硬件如何知道如何访问组成值的位。
在许多语言中,每个值都相当于一个 Rust Box
,因此它们都占用一两个指针的空间。 这些值的静态已知大小允许一个间接层,它可以指向具有运行时确定大小的内容。
在 Rust(以及 C、C++,可能还有其他系统语言)中,您还可以直接在堆栈上存储任意值,未装箱。 在这些情况下,您仍然需要知道该值将占用的大小。
这是一种简化,因为某些语言允许某些特定值驻留在堆栈中,而其他语言则将某些值类型“嵌入”到固定大小的间接寻址中。 像这样的技巧通常是出于性能原因。
但是有垃圾收集器
Rust没有垃圾收集器。 它确实有智能指针,当指针超出范围时会释放资源。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.