扫码阅读
手机扫码阅读

Rust学习笔记(4)-Ownership

586 2023-07-19

我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。

查看原文:Rust学习笔记(4)-Ownership
文章来源:
TestOps
扫码关注公众号
Rust Ownership Summary

Ownership

Ownership是Rust语言独有的一套用于内存管理的规则,它是Rust的一个核心特性。

前置知识

理解Ownership前需要知道堆内存(Heap)和栈内存(Stack)的区别。

Ownership规则

  • 每个值由一个变量(Owner)承载。
  • 一个值同时只能有一个Owner。
  • Owner离开作用域后,值被丢弃。

关于作用域

作用域的概念类似于C/C++和Java,变量在声明后到作用域结束前有效。

内存与分配

基础数据类型直接存储在栈内存中,其他类型存储在堆内存中并在栈内存保存地址信息。

内存释放

Rust自动调用drop方法释放堆内存。赋值操作被视为"move",原变量失效,避免双重释放。

引用与借用

Rust中的引用允许变量借用值,但不改变所有权。可变引用与不可变引用不能同时存在,防止数据竞争。

切片slice类型

切片是一种不存储值的引用,用于引用字符串或其他集合的部分数据。在切片有效期间,原数据不能被变更。

示例分析

通过示例代码分析了Ownership、引用、借用和切片的使用以及编译器如何通过规则避免内存安全问题。

想要了解更多内容?

查看原文:Rust学习笔记(4)-Ownership
文章来源:
TestOps
扫码关注公众号