Rust规律归纳随笔

news2025/3/12 8:19:19

1. 针对所有权规则:

唯一所有权 <------------> 智能指针(引用计数)<-------------->共享所有权

(引用计数)

{

单线程:Rc

多线程:Arc

}

2. 针对借用规则:

共享不可变(多读)<----->可变又共享(内部可变性)<----->可变不共享(独写,读写互斥)

内部可变性)

{

单线程:Cell, RefCell.

多线程: Mutex, RwLock, Atomic.

}

注:

(1)实现写代码时,若编程语言的规则是【不可变不共享】,那么我认为这门语言基本没啥用了。

(2)借用规则其实就是编译期和运行期的“读写锁机制”(前人总结,我摘抄)

3. 借用与生命周期:

核心思想:避免出现“悬垂指针”,注意rust引用也是指针,是一种受限的指针类型; A借用B, 则B的命(生命周期)必须大于等于A,则可以杜绝悬垂引用,反之则很可能会出现悬垂引用。

注:

(1)移动语义项的归纳:Rc, Arc, Cell, RefCell, Mutex, RwLock, Atomic等.

(2)遇到不明白,请写代码编译代码,rust编译器是个好老师。

注意:个人水平有限,难免谬误,欢迎指正,仅做参考,抛砖引玉;怕日后遗忘,故随笔记录。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2313648.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Houdini SOP层 Scatter节点

SOP 代表 Surface Operator&#xff08;几何体操作节点&#xff09;&#xff0c;所有几何体的建模、变形、分布等操作都在此层级完成。 Scatter节点的作用就是 以不同的密度在模型表面撒点 Scatter 节点属于 SOP&#xff08;几何体&#xff09;层级&#xff1a; 进入 Geometr…

【网络安全工程】任务12:网络安全设备

目录 一、防火墙​ 1、作用​ 2、配置方式​ 3、存在的漏洞​ 二、入侵检测系统&#xff08;IDS&#xff09;和入侵防御系统&#xff08;IPS&#xff09;​ 1、作用​ 2、配置方式​ 3、存在的漏洞​ 三、防病毒网关​ ​1、作用​ 2、配置方式​ 3、存在的漏洞​ …

Linux 进程控制:创建、终止、等待与程序替换全解析

亲爱的读者朋友们&#x1f603;&#xff0c;此文开启知识盛宴与思想碰撞&#x1f389;。 快来参与讨论&#x1f4ac;&#xff0c;点赞&#x1f44d;、收藏⭐、分享&#x1f4e4;&#xff0c;共创活力社区。 目录 1.进程创建 1-1 fork函数初识​ 1-2 fork函数返回值​ 1-3…

SwiftUI 让视图自适应高度的 6 种方法(四)

概览 在 SwiftUI 的世界里&#xff0c;我们无数次都梦想着视图可以自动根据布局上下文“因势而变”‌。大多数情况下&#xff0c;SwiftUI 会将每个视图尺寸处理的井井有条&#xff0c;不过在某些时候我们还是得亲力亲为。 如上图所示&#xff0c;无论顶部 TabView 容器里子视图…

1035.不相交的线

1035.不相交的线 力扣题目链接(opens new window) 在两条独立的水平线上按给定的顺序写下 nums1 和 nums2 中的整数。 现在&#xff0c;可以绘制一些连接两个数字 nums1[i] 和 nums2[j] 的直线&#xff0c;这些直线需要同时满足&#xff1a; nums1[i] nums2[j]且绘制的直线…

2001-2023年上市公司数字化转型年报词频统计(年报词频统计和MDA词频统计两种方式)(吴非、赵宸宇、甄红线300+关键词三种方法)

2001-2023年上市公司数字化转型年报词频统计&#xff08;年报词频统计和MD&A词频统计两种方式&#xff09;&#xff08;吴非、赵宸宇、甄红线300关键词三种方法&#xff09; 1、时间&#xff1a;2001-2023年 2、来源&#xff1a;上市公司年报 3、参考文献&#xff1a; …

IO多路复用实现并发服务器

一.select函数 select 的调用注意事项 在使用 select 函数时&#xff0c;需要注意以下几个关键点&#xff1a; 1. 参数的修改与拷贝 readfds 等参数是结果参数 &#xff1a; select 函数会直接修改传入的 fd_set&#xff08;如 readfds、writefds 和 exceptfds&#xf…

C++20 模块:告别头文件,迎接现代化的模块系统

文章目录 引言一、C20模块简介1.1 传统头文件的局限性1.2 模块的出现 二、模块的基本概念2.1 模块声明2.2 模块接口单元2.3 模块实现单元 三、模块的优势3.1 编译时间大幅减少3.2 更好的依赖管理3.3 命名空间隔离 四、如何使用C20模块4.1 编译器支持4.2 示例项目4.3 编译和运行…

有必要使用 Oracle 向量数据库吗?

向量数据库最主要的特点是让传统的只能基于具体值/关键字的数据检索&#xff0c;进化到了可以直接基于语义的数据检索。这在AI时代至关重要&#xff01; 回到标题问题&#xff1a;是否有必要使用 Oracle 向量数据库&#xff1f; 这实际还要取决于你的具体应用需求。 客观来讲…

小肥柴慢慢手写数据结构(C篇)(4-3 关于栈和队列的讨论)

小肥柴慢慢学习数据结构笔记&#xff08;C篇&#xff09;&#xff08;4-3 关于栈和队列的讨论&#xff09; 目录1 双端栈/队列2 栈与队列的相互转化2-1 栈转化成队列2-2 队列转化成栈 3 经典工程案例3-1 生产者和消费者模型&#xff08;再次重温环形缓冲区&#xff09;3-2 MapR…

java-单列模式-final-继承-多态

内存存储区域 引用变量和普通变量引用变量放在栈中&#xff0c;基本数据类型的内容是在堆内存中。 对象放在堆内存中&#xff0c;其引用变量放在栈中&#xff0c;指向堆内存存放对象的地址。 静态变量放在静态区中&#xff0c;静态变量在程序的执行始中中分配一次&#xff0c;…

基于杀伤链的勒索软件控制框架

40s说清楚勒索软件如何工作 基于杀伤链的勒索软件控制框架开发了4种缓解策略(预防、阻止、检测&响应、重建)&#xff0c;覆盖18个控制域90项控制措施&#xff0c;以正确管理与勒索软件攻击杀伤链各阶段相关的风险。 注&#xff1a;本文节选出自《基于杀伤链的勒索软件防御指…

Windows编程----结束进程

进程有启动就有终止&#xff0c;通过CreateProcess函数可以启动一个新的子进程&#xff0c;但是如何终结子进程呢&#xff1f;主要有四种方法&#xff1a; 通过主线程的入口函数&#xff08;main函数、WinMain函数&#xff09;的return关键字终止进程 一个应用程序只有一个入…

无标签数据增强+高效注意力GAN:基于CARLA的夜间车辆检测精度跃升

目录 一、摘要 二、引言 三、框架 四、方法 生成合成夜间数据 昼夜图像风格转换 针对夜间图像的无标签数据增强技术 五、Coovally AI模型训练与应用平台 六、实验 数据 图像风格转换 夜间车辆检测和分类 结论 论文题目&#xff1a;ENHANCING NIGHTTIME VEHICLE D…

SqlSugar 进阶之原生Sql操作与存储过程写法 【ORM框架】

系列文章目录 &#x1f380;&#x1f380;&#x1f380; .NET开源 ORM 框架 SqlSugar 系列 &#x1f380;&#x1f380;&#x1f380; 文章目录 系列文章目录一、前言 &#x1f343;二、用法介绍三、方法列表四、使用案例五、调用存储过程六、in参数用法七、SqlServer带Go的脚…

NO.33十六届蓝桥杯备战|函数|返回值|声明|调用|引用|函数重载(C++)

返回值 我们在设计的函数的时候&#xff0c;函数在经过计算后&#xff0c;有时候需要带回⼀些计算好的数据&#xff0c;这时候往往使⽤return 来返回&#xff0c;这⾥我们就讨论⼀下使⽤ return 返回。 return 后边可以是⼀个数值&#xff0c;也可以是⼀个表达式&#xff0c;…

5G工业路由器赋能无人码头,港口物流智能化管理

全球贸易发展促使港口需提升运营效率&#xff0c;传统港口面临诸多难题&#xff0c;无人码头成为转型关键方向。5G 工业路由器为其提供有力通信支持&#xff0c;引领港口物流变革。 随着无人码头建设在全球兴起&#xff0c;如荷兰鹿特丹港、中国上海洋山港等。码头作业设备需实…

【Academy】OAuth 2.0 身份验证漏洞 ------ OAuth 2.0 authentication vulnerabilities

OAuth 2.0 身份验证漏洞 ------ OAuth 2.0 authentication vulnerabilities 1. 什么是 OAuth&#xff1f;2. OAuth 2.0 是如何工作的&#xff1f;3. OAuth 授权类型3.1 OAuth 范围3.2 授权代码授权类型3.3 隐式授权类型 4. OAuth 身份验证4.1 识别 OAuth 身份验证4.2 侦察OAuth…

有关Java中的多线程

学习目标 ● 掌握线程相关概念 ● 掌握线程的基本使用 ● 掌握线程池的使用 ● 了解解决线程安全方式 1.为什么要学习线程? ● 从1946年2月14日世界上第一台计算机在美国宾夕法尼亚大学诞生到今天&#xff0c;计算和处理的模式早已从单用户单任务的串行模式发展到了多用户多…

【eNSP实战】配置交换机端口安全

拓扑图 目的&#xff1a;让交换机端口与主机mac绑定&#xff0c;防止私接主机。 主机PC配置不展示&#xff0c;按照图中配置即可。 开始配置之前&#xff0c;使用PC1 ping 一遍PC2、PC3、PC4、PC5&#xff0c;让交换机mac地址表刷新一下记录。 LSW1查看mac地址表 LSW1配置端…