Rust 程序设计语言 简体中文版 1.85.0
the stack)。栈中的所有数据都必须 占用已知且固定的大小。在编译时大小未知或大小可能变化的数据,要改为存储在堆 上。 堆是缺乏组织的:当向堆放入数据时,你要请求一定大小的空间。内存分配器 (memory allocator)在堆的某处找到一块足够大的空位,把它标记为已使用,并返 回一个表示该位置地址的 指针(pointer)。这个过程称作 在堆上分配内存 (allocating on the heap),有时简称为 且它的大小还可能随着程序运行而改变。 对于 String 类型,为了支持一个可变,可增长的文本片段,需要在堆上分配一块在编译时未 知大小的内存来存放内容。这意味着: • 必须在运行时向内存分配器(memory allocator)请求内存。 • 需要一个当我们处理完 String 时将内存返回给分配器的方法。 第一部分由我们完成:当调用 String::from 时,它的实现 (implementation) an object-oriented language. My goal was to ensure that all use of references should be absolutely safe, with checking performed automatically by the compiler. But I couldn’t resist the temptation to put0 码力 | 562 页 | 3.23 MB | 10 天前3
共 1 条
- 1