Rust 程序设计语言 简体中文版 1.85.0尾表达式,不过你已经见过作为语句一部分的表达式。因为 Rust 是一门基于表达式 (expression-based)的语言,这是一个需要理解的重要区别。其他语言并没有这样的区别, 所以让我们看看语句与表达式有什么区别以及这些区别是如何影响函数体的。 • 语句(Statements)是执行一些操作但不返回值的指令。 • 表达式(Expressions)计算并产生一个值。 让我们看一些例子。 实际上,我们已经使用过语句和表达式。使用 通过完成一些示例来学习所有权,这些示例基于一个常用的数据结构:字符串。 栈(Stack)与堆(Heap) 在很多语言中,你并不需要经常考虑到栈与堆。不过在像 Rust 这样的系统编程语言 中,值是位于栈上还是堆上在更大程度上影响了语言的行为以及为何必须做出这样的 抉择。我们会在本章的稍后部分描述所有权与栈和堆相关的内容,所以这里只是一个 用来预热的简要解释。 栈和堆都是代码在运行时可供使用的内存,但是它们的结构不同。栈以放入值的顺序 Acquisition Is Initialization (RAII))。如果你使用过 RAII 模式的 话应该对 Rust 的 drop 函数并不陌生。 这个模式对编写 Rust 代码的方式有着深远的影响。现在它看起来很简单,不过在更复杂的场 景下代码的行为可能是不可预测的,比如当有多个变量使用在堆上分配的内存时。现在让我们 探索一些这样的场景。 使用移动的变量与数据交互 在 Rust 中,多个0 码力 | 562 页 | 3.23 MB | 26 天前3
共 1 条
- 1













