Rust 智能指针 Rc<T> Rc<T> 是一种引用计数智能指针,允许在多个所有者之间共享数据。它在单线程环境中非常有用,但在多线程环境中需要使用 Arc<T>。 使用 Rc<T> 时,克隆一个 Rc 实际上是增加了引用计数,而不是复制数据。这使得它非常高效,但需要注意避免循环引用。 可以通过 Rc…
卡尔曼滤波和虚拟串口 卡尔曼滤波 卡尔曼滤波是一种递归算法,用于估计动态系统的状态。它基于线性高斯状态空间模型,通过结合测量数据和系统模型来提供最小均方误差意义下的最优状态估计。卡尔曼滤波器由两个主要步骤组成:预测和更新。 以一维平衡数据为例演示滤波过程。 一个简单的状态空间模型可以表示为: #[derive(Clone, Copy)] struc…
Rust GPUI 开发尝试 本文档记录了我在使用 Rust 语言进行图形用户界面(GUI)开发时的一些尝试和经验。由于 GPUI 目前并不成熟且未发布较稳定版本,后续改动可能很大,可能会有内容不完整或错误的地方,欢迎指正和补充。 Get Started Crates.io 引入依赖 [dependencies] gpui = "0.2.2" GP…
这是初学者学习Rust时记录的一些学习摘要和部分Cookbook过时修正内容 由于 Rust Cookbook 内容很大部分过时,所以做了许多修正和提示,以符合现代 Rust 规范。 若有纰漏,劳烦指出 Rust Candy Option<T>有is_none()实现,返回布尔值。 使用if let while let快速取指针包装值。…