文章目录
-
-
- 什么是所有权
- 所有权规则
- 转让所有权
-
- 变量与数据交互的方式(一):移动
- 变量与数据交互的方式(二):克隆
- 只在栈上的数据:拷贝
- 所有权与函数
- 返回值与作用域
- 引用和借用
- 可变引用
- 悬垂引用(Dangling References)
- 引用的规则
-
什么是所有权
所有权(ownership)是Rust 的核心功能之一。所有程序都必须管理其运行时使用计算机内存的方式。Rust 则选择通过所有权系统管理内存,编译器在编译时会根据一系列的规则进行检查。如果违反了任何这些规则,程序都不能编译。在运行时,所有权系统的任何功能都不会减慢程序。
所有权就是一个东西属不属于你,你有没有权力随意处理它,比如送人,比如扔掉。
Rust 语言中每一值都有一个对应的变量,这个变量就成为这个值的 所有者。从某些方面说,定义一个变量就是为这个变量和它存储的数据定义一种所有者管理,声明这个值由这个变量所有。
例如,对于 let age = 30
这条语句,相当于声明 30
这个值由变量 age
所有
所有权规则
首先,让我们看一下所有权的规则。当我们通过举例说明时,请谨记这些规则: