Rust 所有权机制深度解析
1. 所有权规则
在 Rust 中,所有权规则是核心概念,以下是所有权的三条基本规则:
- 每个值都有一个变量作为其所有者。
- 同一时间,一个值只能有一个所有者。
- 当所有者离开作用域时,该值将被丢弃。
2. 变量作用域
变量作用域是指变量在程序中有效的范围。例如:
{ // s 在此处无效,因为尚未声明
let s = "hello"; // 从这一点开始,s 有效
// 使用 s 做一些事情
} // 此作用域结束,s 不再有效
这里有两个关键时间点:
- 当 s 进入作用域时,它开始有效。
- 直到 s 离开作用域,它一直保持有效。
3. 栈与堆的性能差异
栈操作比堆操作更快。栈操作时,操作系统无需搜索存储新数据的位置,新数据总是存储在栈顶。而堆分配空间时,操作系统首先要找到足够大的空间来存储数据,然后进行簿记工作以准备下一次分配。
访问堆中的数据比访问栈中的数据慢,因为需要通过指针来定位。当代处理器在内存中跳转较少时运行速度更快。例如,餐厅服务员按桌依次接收订单会更高效,而在不同桌之间频繁切换则会降低效率。同样,处理器处理相邻的数据(如栈中的数据)比处理分散的数据(如堆中的数据)更高效。
当代码调用函数时,传递给函数的值(包括堆
超级会员免费看
订阅专栏 解锁全文
6万+

被折叠的 条评论
为什么被折叠?



