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)

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

相关推荐
树的枝6 分钟前
【STM32】05.TIM定时器
笔记·stm32·单片机·嵌入式硬件
雾沉川9 分钟前
Rust IDE 选型:除 VS Code 之外,RustRover 非商业场景可免费使用
ide·vscode·rust
不会代码的小猴16 分钟前
6. Qt网络编程
开发语言·c++·笔记·qt·算法
MartinYeung51 小时前
[论文学习]ChainWatch:面向MCP-Based AI智能体系统中多步攻击的杀伤链对齐序贯检测框架
人工智能·学习
tq10861 小时前
从阿罗不可能定理到所有制:动态协调与资源再配置的理论逻辑
笔记
程序员爱钓鱼1 小时前
Go 编程实战:Map——使用 Key-Value 管理键值数据
后端·rust·go
fīɡЙtīиɡ ℡1 小时前
AI 应用评测体系
人工智能·学习
程序员爱钓鱼2 小时前
Rust Trait Object详解:dyn Trait与动态分发
后端·面试·rust
cypking2 小时前
Objective-C 语法完整学习手册(小白自学 + 开发备查)
c语言·开发语言·学习·objective-c
Terra.K9 小时前
Java异常学习[特殊字符]
java·开发语言·学习