rust——所有权与移动

很久没有回来写文章了,主要是工作以来没有很想证明自己有没有学习,没有上学时的分享欲那么严重了。现在是为了记录自己正式开始重视学习的第一天,希望自己能够坚持。

rust是一门非常优秀的语言,虽小众,但是已然满足了许多未来发展需要的东西,能够在短时间入门,并逐渐开始应用是我今年的目标。

文章目录

前言

一、所有权是什么?

二、注意事项

总结


前言

rust所有权的自动控制,解决"安全"与"控制"难以兼得的问题


一、所有权是什么?

某个类的实例拥有它指向的某个其他对象。通常,拥有对象以为着可以决定合适释放此对象:当销毁拥有者时,它拥有的对象也会随之销毁。

注意事项

  • 当变量超出作用域时,程序将会丢弃此变量。
  • Rust的打你拥有者规则将紧致任何可能让他们排列得比树结构更复杂的可能性。rust程序中的每个值都是某棵树的成员。树根是某个变量。

二、移动

在Rust中,对于大多数类型来说,像为变量复制、将其传给函数或从函数返回这样的操作都不会复制值,而是会移动值。

  • 在Rust中,大多数类型的赋值会将值从源转移给目标,而源会回到未初始化状态。
  • 移动的永远是值本身,而不是这些值拥有的堆存储。对于向量和字符串,值本身就是指单独的"三字标头",幕后的大型元素数组和文本缓冲区仍然位于他们在堆中的位置。
  • 禁止在循环中进行变量移动。
  • 没有运行期开销。
  • 用String赋值会移动值,而用i32赋值会复制值。因为i32不会拥有任何堆资源。
  • 确保不会有任何值是既共享又可变的。
  • 循环引用计数------这些对象都没机会释放。

总结

所有权是Rust学习中最陡峭的环节,我这些都是我在看书过程中,自己边看边觉得需要注意的地方,主要还是为了加深理解,方便后续复习。

相关推荐
扯淡的闲人1 小时前
Go语言入门学习笔记
笔记·学习·golang
stjiejieto2 小时前
教育 AI 的下半场:个性化学习路径生成背后,技术如何平衡效率与教育本质?
大数据·人工智能·学习
彭刷子2 小时前
[c语言]简单的进行多次计算的+-*/计算机
c语言·学习
Hy行者勇哥2 小时前
现代软件系统架构:前端、后端、数据库、部署、算法与AI学习的结构与交互分析
前端·数据库·学习
BFT白芙堂2 小时前
松灵斯坦福Mobile ALOHA同款 | 通过低成本全身远程操作实现双手机器人移动操控学习
人工智能·学习·机器人·移动机器人·论文解读·开源双臂遥操作系统·松灵cobotmagic
AI浩3 小时前
深度学习核心损失函数详解:交叉熵、MSE、对比学习(InfoNCE)
人工智能·深度学习·学习
m0_578267863 小时前
从零开始的python学习(九)P134+P135+P136+P137+P138+P139+P140
开发语言·python·学习
深蓝学院3 小时前
[ICCV25]TRACE:用3D高斯直接学习物理参数,让AI“推演”未来场景
人工智能·学习·3d
霜绛5 小时前
Unity:XML笔记(一)——Xml文件格式、读取Xml文件、存储修改Xml文件
xml·笔记·学习·unity·游戏引擎
v_for_van6 小时前
TFT屏幕:STM32硬件SPI+DMA+队列自动传输
笔记·stm32·单片机·嵌入式硬件·mcu·物联网·学习