自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

MrRice的博客

嘶,暂时就这样吧

  • 博客(25)
  • 收藏
  • 关注

原创 rust面试经验1

redis rust实现反向代理服务器rust实现是 Tokio 异步运行时提供的一个宏,用于同时等待多个异步任务,并在其中任意一个完成时立即执行对应的分支。它类似于match表达式,但用于异步任务的选择。派生宏允许为结构体或枚举自动生成代码。通过可以创建一个自定义派生宏,结合feature参数控制生成的代码逻辑。quote!println!");println!");}.into()使用时可以通过#[feature]

2026-04-30 00:57:37 436 5

原创 初学linux

Linux 整个文件系统就像一棵倒置的树,最顶端是根目录 / ,所有文件和目录都从这里开始分支。/ ← 根目录(树根)├── bin/ ← 存放常用命令(如 ls, cat)├── boot/ ← 启动相关文件├── dev/ ← 设备文件(硬盘、键盘等)├── etc/ ← 配置文件(系统设置)

2026-03-07 14:35:50 418

原创 rust 初学 之 宏

Rust 的宏系统允许你:- 减少样板代码:自动生成重复的结构- 创建 DSL:构建领域特定语言(如 `vec![1, 2, 3]` 这种简洁语法)- 编译时计算:在编译期完成部分工作,提升运行时性能- 增强类型安全:生成类型特定的代码,避免运行时错误。

2026-03-04 23:56:10 508

原创 rust cli项目实践 csv to json 总结

RCLI是一个基于Rust开发的高性能CSV处理工具,具有以下核心特性: 格式转换:支持将CSV文件转换为JSON格式 灵活配置:可自定义分隔符、Header选项等参数 高性能处理:利用Rust的并发特性实现快速数据转换 类型安全:使用serde框架进行数据序列化/反序列化 工具采用模块化设计,主要包含: opts.rs:命令行参数解析 process.rs:核心转换逻辑 lib.rs:公共接口导出 安装使用简单,支持多种参数配置,适合需要高效处理CSV数据的场景。项目采用MIT开源协议,具备良好的可扩展性

2026-03-04 00:29:25 577

原创 Rust 初学 之 60个可能犯的错误(下)

本文总结了Rust新手在错误处理和集合使用中的常见错误。在错误处理方面,主要问题包括滥用unwrap、错误类型转换不当、忽略错误信息等,建议使用match/match_err、自定义错误类型和anyhow/thiserror库。在集合与迭代器方面,常见错误有迭代器消耗、所有权问题、类型推断失败等,应注意正确使用引用、显式类型标注和预先分配容量。文章提供了每个错误的错误示例和修复方案,并附有快速修复速查表,帮助开发者快速定位和解决常见问题。

2026-02-28 19:10:02 591

原创 Rust 初学 之 60个可能犯的错误(上)

本文整理了Rust初学者常见的60个错误,按类别分类并提供解决方案。主要涵盖:所有权与借用(如转移后使用、函数参数转移、可变借用冲突)、类型系统(整数推断、浮点比较、泛型约束)、生命周期(标注错误、静态误用、自引用)、错误处理(unwrap滥用、错误转换、嵌套match)以及集合迭代器(消耗问题、所有权、哈希要求)等方面。每个错误都包含错误示例和正确修复方法,并附有快速修复速查表,帮助开发者快速定位和解决常见问题。文章强调Rust核心概念如所有权、生命周期和类型安全的正确使用方式。

2026-02-27 16:46:20 1216 2

原创 leetcode 链表 两数相加 rust解法分析

给你两个的链表,表示两个非负的整数。它们每位数字都是按照的方式存储的,并且每个节点只能存储数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。

2026-02-27 00:03:14 1028

原创 leetcode题:合并两个有序链表 Rust实现

本文介绍了用Rust实现合并两个有序链表的两种方法:递归法和迭代法。递归法通过模式匹配比较节点值,递归地连接较小节点,时间复杂度O(n+m),空间复杂度O(n+m)来自递归栈。迭代法使用哑节点和指针遍历,逐个连接较小节点,时间复杂度相同但空间复杂度优化为O(1)。文章详细解析了两种实现的核心逻辑、所有权处理技巧(如Option::take()、as_ref())和复杂度分析,并提供了代码执行流程图解,展示了Rust在链表操作中的安全性和高效性。

2026-02-24 10:55:45 779

原创 Rust 初学 之 dyn Trait、impl Trait和&dyn Trait

Rust中dyn Trait、impl Trait和&dyn Trait的主要区别在于分发方式和应用场景:impl Trait采用静态分发,编译时为每个具体类型生成独立代码,适合编译时确定类型的泛型场景;dyn Trait通过虚表实现动态分发,需配合指针使用(如Box<dyn Trait>),用于运行时多态;&dyn Trait是借用形式的动态分发,避免堆分配但受生命周期限制。选择时应优先考虑impl Trait以获得最佳性能,仅在需要运行时多态时使用动态分发,并尽可能选择&am

2026-02-24 00:11:28 901

原创 Rust 初学 之 `Result` 类型的 `unwrap`、`expect`、`?` 等方法

Rust中Result类型的错误处理方法对比:unwrap()和expect()会在错误时panic,适用于测试和原型开发;unwrap_or()和unwrap_or_else()提供默认值处理;?运算符是生产代码首选,能优雅传播错误。核心区别在于错误处理策略:panic方法(开发用)vs 恢复方法(生产用)。最佳实践建议:库代码使用?传播错误,必要资源检查用expect,用户输入处理用默认值方法,测试代码可用unwrap。关键原则是只在可接受崩溃时使用panic方法,否则应妥善处理错误。

2026-02-23 20:34:08 1282

原创 Rust 初学 之 库fs、anyhow、csv、serde、serde_json

/ ensure!宏:条件断言ensure!(b!= 0.0, "除数不能为零");// bail!宏:立即返回错误bail!("输入包含 NaN: a={}, b={}", a, b);Ok(a / b)("无效端口号 '{}': {}", s, e))?;// anyhow!宏创建带上下文的错误("端口号 {} 为系统保留端口", port));

2026-02-23 20:01:20 1083

原创 rust 初学 之 插件配置

功能介绍:为 TOML 文件提供全面的编辑器支持,包括语法高亮、Schema 验证、自动补全、格式化、折叠、导航等功能,显著提升 `Cargo.toml` 编辑体验。- 功能介绍:在 `Cargo.toml` 文件中显示依赖 crate 的最新版本信息,支持语义化版本分析,可直观看到当前版本与最新版本的差异,并提供一键更新功能。- 功能介绍:由 crate-ci 开发的拼写检查工具,专为代码仓库设计,能识别源代码、注释、文档中的英文拼写错误,支持自动修复和自定义配置。

2026-02-21 23:15:21 696

原创 Rust 初学 之 &str和String的区别(附 胖指针 & 内存说明)

Rust中的字符串类型&str和String在所有权、存储位置和可变性上有本质区别。&str是字符串切片,不可变且不拥有数据,适合只读操作;String是堆分配的可变字符串,拥有所有权。函数参数推荐使用&str以提高灵活性,需要修改或存储时使用String。胖指针(如&str和&[T])包含数据指针和元数据,是处理动态大小类型的核心机制。Rust内存分为栈(自动管理)、堆(所有权系统管理)和静态区(编译期确定),不同区域各有特点和使用场景。

2026-02-11 22:41:38 984

原创 Rust 初学 之 函数参数格式对应的所有权

Rust函数参数与所有权关系摘要:Rust通过参数格式决定所有权转移方式:1) T转移所有权,原变量不可用;2) &T为不可变借用,可读不可改;3) &mut T为可变借用,可修改但借用期间原变量不可用;4) Box<T>转移堆数据所有权。核心规则包括:每个值有唯一所有者,作用域结束自动drop,借用需遵守"同一时刻同一数据只能有一个可变引用或多个不可变引用"原则。参数选择需根据场景:修改用&mut T,只读大数据用&T,消费数据用T。Rust

2026-02-11 21:24:34 357

原创 Rust 初学 之 循环体

本文详细介绍了Rust语言中的循环控制机制,包括三种基本循环类型:无限循环的loop、条件循环的while和迭代循环的for。重点讲解了循环控制关键字break和continue的用法,以及循环标签(LoopLabels)在嵌套循环中的实用技巧。文章还深入分析了各循环类型的性能差异,提供了优化建议,如优先使用for循环和迭代器适配器,避免不必要的循环嵌套等。最后通过文件读取、并发任务和游戏循环等实际案例,展示了Rust循环在实际开发中的应用,并指出了常见陷阱如所有权转移问题和意外无限循环的规避方法。

2026-02-08 21:38:17 902

原创 Rust 初学 之 数据类型

结构体(Struct)

2026-02-08 20:33:15 775

原创 leetcode题:交替合并字符串 rust解法

本文展示了两种Rust实现字符串交替合并的方法。初始解法将字符串转为字符向量后,通过循环和条件判断实现交替合并,处理剩余字符时需单独循环。优化后的解法使用字符迭代器和match模式匹配,更简洁地处理四种可能情况:两个字符都存在时交替添加;任一字符串有剩余字符时直接追加剩余部分;都为空时结束。优化方案减少了代码量,提高了可读性,体现了Rust迭代器和模式匹配的优势。

2026-02-07 23:55:16 369

原创 编译原理中英文对照表第2章

递归下降分析方法(一种自顶向下的语法分析方法)关注我,内容更新第一时间提醒。

2025-04-27 16:00:39 434

原创 现代操作系统单词表第二章

关注我,后续内容更加精彩;关注我,更新第一时间提醒。包装器(在系统调用周围从事检查的代码)最短作业优先(批处理系统中的调度)调用向一个给定的目标发送一条消息。优先级调度(交互式系统中的调度)轮转调度(交互式系统中的调度)保证调度(交互式系统中的调度)读者-写者问题(飞机订票系统)实时系统(实时系统中的调度)信箱(ー种新的数据结构)生产者-消费者(问题)

2025-04-25 15:12:02 768

原创 计算机网络:自顶向下方法(Computer Networking:A Top-Down Approach)单词表第二章(第一部分(我自己分的俩部分))

首部行指示 该报文是由一台Apache Web服务器产生的,它类似于HTTP请求报文中的User-agent:首 部行。:请求的对象已经被永久转移了,新的URL定义在响应报 文的Location:首部行中。请求行(HTTP请求报文的第一行(包含方法字段、URL字段和HTTP版本字段))首部行用来指明用户代理, 即向服务器发送请求的浏览器的类型。服务器在发送完被请求的对象后就关闭这条连接。状态行(HTTP响应报文的3部分之一)些常见的状态码和相关的短语。:被请求的文档不在服务器上。用户与服务器的交互文件。

2025-04-22 01:28:23 367

原创 编译原理中英文对照表第一章

关注我,后续内容更精彩;关注我,内容更新第一时间提醒。语法分析(编译器第2个步骤)扫描(编译器第1个步骤)语言,结构化查询语言。

2025-04-21 14:45:40 250

原创 UML和模式设计中英文单词对照表,第二部分初始阶段,第4、5、6、7章

关注我,后续内容更精彩;关注我,内容更新第一时间提醒。

2025-04-19 15:51:53 447

原创 UML和模式设计中英文单词对照表,第一部分绪论,第1、2章

关注我,后续内容更精彩;关注我,内容更新第一时间提醒。

2025-04-19 15:49:24 413

原创 计算机网络:自顶向下方法(Computer Networking:A Top-Down Approach)单词表第一章:计算机网络和因特网

节点总时延(以上四个时延之和)路由器(两种主要交换机之一)非引导型媒体(物理媒体之二)第一章:计算机网络和因特网。报文(应用层的信息分组)因特网的主要协议的统称。电缆调制解调器端接系统。数字用户线接入复用器。

2025-04-15 16:32:13 976

原创 现代操作系统单词表第一章

Universal Serial Bus(相对较慢)基于互补金属氧化物半导体(CMOS)技术制造的存储器。关注我,后续内容更加精彩;关注我,更新第一时间提醒。并行总线架构(多导线传输数据每个字)(传统PCI)串行总线架构(单导线传输数据每一位) (PCIe)共享总线架构(多个设备使用相同导线传输数据)文件描述符(读写文件前权限许可返回的小整数)磁芯映射:纪念过去使用的磁芯存储器。(Windows中的)管理员。(UNIX中的)超级用户。直接存储器访问(芯片)程序状态字(寄存器)电可擦除可编程ROM。

2025-04-04 16:17:27 968

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除