当前位置: 首页 > article >正文

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)

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


http://www.kler.cn/a/397352.html

相关文章:

  • LLM - 计算 多模态大语言模型 的参数量(Qwen2-VL、Llama-3.1) 教程
  • 如何利用WebSockets实现高效的实时通信应用
  • Python酷库之旅-第三方库Pandas(218)
  • STM32 串口输出调试信息
  • HarmonyOS Next 组件或页面之间的所有通信(传参)方法总结
  • tdengine学习笔记
  • 细粒度集群
  • Electron教程2-第一个应用
  • 在k8s上部署minio
  • 企业网络链路聚合、数据抓包、远程连接访问实验
  • Linux基础开发工具使用
  • linux病毒编写+vim shell编程
  • 微软出品的一个鼠标控制多台电脑,还能共享剪切板分享与下载
  • 微信小程序:vant组件库安装步骤
  • Django中的URL配置与动态参数传递(多种方法比较)
  • 深入探索 Kubernetes 安全容器:Kata Containers 与 gVisor
  • Jmeter中的监听器(二)
  • 【蓝桥等考C++真题】蓝桥杯等级考试C++组第13级L13真题原题(含答案)-奇数序列排序
  • 【C语言】实现二维数组按行排序
  • Matter1.4重磅来袭,智能家居进入“互联”新纪元
  • 电脑怎么自动切换IP地址
  • FFmpeg源码:avio_read_partial函数分析
  • 无线网络信号 6G、5G和2.4G 的一些小科普
  • 一文了解 node 包管理工具: npm npx nvm nrm
  • 力扣 回文链表-234
  • LLMs之Agent:Magentic-One的简介、安装和使用方法、案例应用之详细攻略