扫码阅读
手机扫码阅读
Rust学习笔记(4)-Ownership
552 2023-07-19
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
文章来源:
TestOps
扫码关注公众号
Ownership
Ownership是Rust语言独有的一套用于内存管理的规则,它是Rust的一个核心特性。
前置知识
理解Ownership前需要知道堆内存(Heap)和栈内存(Stack)的区别。
Ownership规则
- 每个值由一个变量(Owner)承载。
- 一个值同时只能有一个Owner。
- Owner离开作用域后,值被丢弃。
关于作用域
作用域的概念类似于C/C++和Java,变量在声明后到作用域结束前有效。
内存与分配
基础数据类型直接存储在栈内存中,其他类型存储在堆内存中并在栈内存保存地址信息。
内存释放
Rust自动调用drop方法释放堆内存。赋值操作被视为"move",原变量失效,避免双重释放。
引用与借用
Rust中的引用允许变量借用值,但不改变所有权。可变引用与不可变引用不能同时存在,防止数据竞争。
切片slice类型
切片是一种不存储值的引用,用于引用字符串或其他集合的部分数据。在切片有效期间,原数据不能被变更。
示例分析
通过示例代码分析了Ownership、引用、借用和切片的使用以及编译器如何通过规则避免内存安全问题。
想要了解更多内容?
文章来源:
TestOps
扫码关注公众号
TestOps的其他文章
《PlayWright全解析——从入门到精通》-4
在PlayWright中的元素定位基本跟Selenium是类似的,熟悉CSS选择器定位以及xpath定位的同学可以无缝过渡。当然,PlayWright也有自己定义元素的特色,我们在这里仔细讲讲。
从自动化到端到端自动化
从做自动化到做端到端自动化几乎都是每个走上“测开”这条道路的朋友的必经之路,毕竟通过Code来极致拉通一切,
构建质量内建道法术器中的自动化测试,我有几个建议
作为一个经常不说人话的大会(走穴)分享讲师,最近几年都喜欢跨栈的聊一些关于道法级别的内容,毕竟质量内建要靠任何一个部门都很难做到。那么既然要先做自动化才能做左移或者右移,来聊点干货。
测试开发进阶之旅
从2019年开始讲Spring的测开架构到2020年讲Go微服务开发,再到2021年中引入了DevOps平台开发的内容,如何讲走在行业前端一直是这门课程的定义,所以也对于讲师提出了讲自己觉得有用的东西的定位,也就有了下面的讲师总结。
用jmeter-grpc-request性能测试的严重问题
jmeter-grpc-request,平日用着挺好用的,今天设置了100个线程,持续跑,结果才跑了5000来个请求,就卡住了
加入社区微信群
与行业大咖零距离交流学习
软件研发质量管理体系建设
白皮书上线