mirror of
https://github.com/KaiserY/trpl-zh-cn
synced 2024-11-09 08:51:18 +08:00
Merge pull request #1 from wangtxxl/patch-1
Create ch04-01-what-is-ownership.md
This commit is contained in:
commit
067e4de82d
@ -16,7 +16,7 @@ Rust 的核心功能(之一)是**所有权**(*ownership*)。虽然这个
|
||||
|
||||
> ### 栈(Stack)与堆(Heap)
|
||||
>
|
||||
> 在很多语言中并不经常需要考虑到栈与堆。不过在像 Rust 这样的系统变成语言中,值是位于栈上还是堆上在更大程度上影响了语言的行为以及为何必须做出特定的选择。我们会在本章的稍后部分描述所有权与堆与栈相关的部分,所以这里只是一个用来预热的简要解释。
|
||||
> 在很多语言中并不经常需要考虑到栈与堆。不过在像 Rust 这样的系统编程语言中,值是位于栈上还是堆上在更大程度上影响了语言的行为以及为何必须做出特定的选择。我们会在本章的稍后部分描述所有权与堆与栈相关的部分,所以这里只是一个用来预热的简要解释。
|
||||
>
|
||||
> 栈和堆都是代码在运行时可供使用的内存部分,不过他们以不同的结构组成。栈以放入值的顺序存储并以相反顺序取出值。这也被称作**后进先出**(*last in, first out*)。想象一下一叠盘子:当增加更多盘子时,把他们放在盘子堆的顶部,当需要盘子时,也从顶部拿走。不能从中间也不能从底部增加或拿走盘子!增加数据叫做**进栈**(*pushing onto the stack*),而移出数据叫做**出栈**(*popping off the stack*)。
|
||||
>
|
||||
@ -390,4 +390,4 @@ fn calculate_length(s: String) -> (String, usize) {
|
||||
}
|
||||
```
|
||||
|
||||
但是这不免有些形式主义,同时这离一个通用的观点还有很长距离。幸运的是,Rust 对此提供了一个功能,叫做**引用**(*references*)。
|
||||
但是这不免有些形式主义,同时这离一个通用的观点还有很长距离。幸运的是,Rust 对此提供了一个功能,叫做**引用**(*references*)。
|
||||
|
Loading…
Reference in New Issue
Block a user