Rust规律归纳随笔

ops/2025/3/13 16:52:25/

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.ppmy.cn/ops/165452.html

相关文章

聊聊langchain4j的AiServicesAutoConfig

序 本文主要研究一下langchain4j-spring-boot-starter的AiServicesAutoConfig LangChain4jAutoConfig dev/langchain4j/spring/LangChain4jAutoConfig.java AutoConfiguration Import({AiServicesAutoConfig.class,RagAutoConfig.class,AiServiceScannerProcessor.class })…

【性能测试】Jmeter如何做一份测试报告(3)

本篇文章主要介绍Jmeter中下载插件&#xff08;Jmeter Plugins&#xff09; 如何使用监听器插件&#xff0c;线程组插件&#xff0c;梯度压测线程组 测试报告需要去关注的数据&#xff0c;怎么看测试报告图表 目录 一&#xff1a;插件下载 1&#xff1a;下载地址 2&#xff…

[mybatis]resultMap详解

resultMap Mybatis中提供了resultMap功能&#xff0c;可以将数据库查询结果映射到Java对象&#xff0c;用于解决 字段名与属性名不一致 或 复杂关系&#xff08;如一对多&#xff09;的映射问题。 比如一个User类&#xff0c;在它的属性里还有另一个子对象&#xff08;或者多…

无服务架构:设计一个基于 AWS Lambda 和 S3 的音乐网站

作为开发者&#xff0c;我一直对如何构建高效、可扩展的网络应用感兴趣&#xff0c;尤其是如何在云平台上创建一个简单而强大的音乐网站。为了实现这个目标&#xff0c;我决定使用 AWS Lambda、S3 和一些其他 AWS 服务来设计和开发这个项目。以下是我在构建这个音乐网站时所采用…

全局引用scss文件定义的变量

在vite.config.ts文件中写如下代码 css: {preprocessorOptions: {scss: {additionalData: use "/assets/styles/index.scss";,//这一句javascriptEnabled: true}} }在scss文件中定义变量 $color:#000;在其他文件引用变量 <style lang"scss" scoped&g…

PHP版多语言多商家海外商城源码开源无加密

PHP版多语言多商家海外商城源码开源无加密 支持各种功能逻辑二次开发 附带详细搭建教程 后台支持POS批量下单、定时爆单、商家直通车 前后台多国语言、多货币切换、汇率自动换算 支持PayPal等多种在线国际支付方式 离线支付方式&#xff1a;银行卡、USDT等手动支付方式&a…

数据结构:排序详解(使用语言:C语言)

1.排序的概念及其运用 1.1排序的概念 排序&#xff1a;所谓排序&#xff0c;就是使一串记录&#xff0c;按照其中的某个或某些关键字的大小&#xff0c;递增或递减的排列起来的操作。 稳定性&#xff1a;假定在待排序的记录序列中&#xff0c;存在多个具有相同的关键字的记录…

数据分析人员需要掌握sql到什么程度?

学习SQL三个层次 熟悉基本的增删改查语句及函数&#xff0c;包括select、where、group by、having、order by、delete、insert、join、update等&#xff0c;可以做日常的取数或简单的分析&#xff08;该水平已经超过90%非IT同事&#xff09;;掌握并熟练使用高阶语法&#xff0…