Rust 程序设计语言 简体中文版 1.85.0我们将数组的值写成在方括号内,用逗号分隔的列表: 文件名:src/main.rs fn main() { let a = [1, 2, 3, 4, 5]; } 当你想要在栈(stack)而不是在堆(heap)上为数据分配空间(第四章将讨论栈与堆的更多 内容),或者是想要确保总是有固定数量的元素时,数组非常有用。但是数组并不如 vector 类 型灵活。vector 类型是标准库提供的一个 允许 增长和缩小长度的类似数组的集合类型。当不 通过完成一些示例来学习所有权,这些示例基于一个常用的数据结构:字符串。 栈(Stack)与堆(Heap) 在很多语言中,你并不需要经常考虑到栈与堆。不过在像 Rust 这样的系统编程语言 中,值是位于栈上还是堆上在更大程度上影响了语言的行为以及为何必须做出这样的 抉择。我们会在本章的稍后部分描述所有权与栈和堆相关的内容,所以这里只是一个 用来预热的简要解释。 栈和堆都是代码在运行时可供使用的内存,但是它们的结构不同。栈以放入值的顺序 叠盘子:当增加更多盘子时,把它们放在盘子堆的顶部,当需要盘子时,也从顶部拿 走。不能从中间也不能从底部增加或拿走盘子!增加数据叫做 入栈(pushing onto the stack),而移出数据叫做 出栈(popping off the stack)。栈中的所有数据都必须 占用已知且固定的大小。在编译时大小未知或大小可能变化的数据,要改为存储在堆 上。 堆是缺乏组织的:当向堆放入数据时,你要请求一定大小的空间。内存分配器0 码力 | 562 页 | 3.23 MB | 1 月前3
共 1 条
- 1













