Rust 语言学习笔记(五)

终于来到了 Rust 的精髓所在了,那就是使之不依赖于垃圾回收又能保障内存安全且高效运行的所有权系统(Ownership System)。想要用 Rust 做一个稍显规模项目必定绕不过它,所有权系统包括所有权(Ownership), 借用(Borrowing), 生命周期(Lifetimes)。

以下概念的复述基本是从 《Rust编程: 入门, 实战与进阶》一书中而来,那里面有些内容是来自于官方的 The Rust Programming Languge - Understanding Ownership.

所有权系统的基本概念

Rust 的编程语法很快就能上手,让学习 Rust 曲线陡然大增的也就是这个所有权系统。所有权检测在编译期完成,Rust 能编译出来的代码就是安全高效的。要理解 Rust 的所有权系统必须首先明白以下两组概念:

  1. 栈内存(Stack),值语义(Value Semantic),按位复制(浅复制)(Shallow Copy),复制语义(Copy Semantic)
  2. 堆内存(Heap), 引用语义(Reference Semantic), 深复制(Deep Copy),移动语义(Move Semantic), 借助(Borrowing)

和其他语言一样,大小固定的所有基本类型都可以存储在栈上,栈上存取数据总是在栈顶操作,很快,而访问堆内存需要搜索内存地址。所有权系统的主要任务是用来跟踪堆上的数据,即引用语义的数据。 阅读全文 >>

相关推荐
AnalogElectronic11 分钟前
整理一下arcGis desktop版本软件, 从入门到精通需要学习的知识点
学习·arcgis
柒十三.16 分钟前
江科大51单片机笔记【12】DS18B20温度传感器(上)
笔记·嵌入式硬件·51单片机
阳光808817 分钟前
体验开源OpenHarmony+stratovirt模拟器
linux·ubuntu·rust·开源
今天也想MK代码1 小时前
rust编程实战:实现3d粒子渲染wasm
开发语言·rust·wasm
派阿喵搞电子1 小时前
轻量级 Transformer 架构&多模态预训练框架
学习
一弓虽1 小时前
maven学习
java·学习·github·maven
虾球xz2 小时前
游戏引擎学习第144天
学习·游戏引擎
技术小齐3 小时前
网络运维学习笔记(DeepSeek优化版) 014网工初级(HCIA-Datacom与CCNA-EI)NAT网络地址转换
运维·网络·学习
llkk星期五3 小时前
zotero同步infiniCLOUD报错:webdav服务器不接受您输入的用户名及密码
学习
周周记笔记3 小时前
学习笔记:Python网络编程初探之基本概念(一)
笔记·学习