- 博客(6)
- 收藏
- 关注
原创 仓颉:LinkedList链表实现
仓颉语言中LinkedList的实现展现了经典数据结构在现代编程实践中的演进:通过双向指针提供灵活的操作能力,通过Option类型保证指针安全,通过双向查找优化访问性能,通过显式清理协助垃圾回收。理解LinkedList的内部机制,不仅在于掌握指针操作的技巧,更在于洞察其适用场景的边界——何时用LinkedList,何时用ArrayList,这种判断力是工程实践积累的结果。链表作为计算机科学的基石数据结构,其设计思想超越了具体实现,体现了间接访问、动态组织、灵活重组的核心理念。
2025-11-10 11:20:20
255
原创 仓颉:TreeMap红黑树结构
仓颉语言中TreeMap的红黑树实现体现了经典算法与现代工程的完美融合:通过五条着色规则保证平衡性,通过旋转操作维护树结构,通过中序遍历提供有序迭代,通过parent指针简化修复逻辑。每一个设计决策都是多重权衡的结果——性能与内存、简洁与效率、通用与专用。理解TreeMap的内部机制,不仅能帮助我们在HashMap与TreeMap之间做出正确选择,更能让我们领悟自平衡树这一计算机科学经典数据结构的精髓。当需要有序映射、范围查询、稳定性能时,TreeMap就是最佳答案。
2025-11-10 11:16:29
237
原创 Rust:不可变借用的规则与限制
不可变借用是 Rust 安全体系的基石,它让程序在无需垃圾回收、无需运行时开销的情况下,实现了对共享数据的静态保护。Rust 通过借用检查器在编译期验证每一次引用的有效性、唯一性与生命周期,从根本上消除了悬垂指针和数据竞争。安全性不靠开发者的自觉,而靠语言语义的保证;高性能不靠逃避抽象,而靠静态分析的确定性。理解不可变借用的规则,不只是理解 Rust 的语法,更是理解 Rust 如何将“安全”和“性能”同时推向极致的关键所在。
2025-10-30 21:25:13
243
原创 Rust:所有权系统如何防止双重释放
Rust 防止双重释放的关键在于“所有权唯一 + 生命周期可证明”机制功能防止问题所有权转移每个值仅有一个持有者禁止多重释放借用检查防止悬垂引用禁止释放后使用Drop trait定义唯一析构逻辑释放过程受控编译期分析静态验证资源生命周期无需运行时开销Rust 不依赖 GC 或异常机制,而是通过类型系统确保资源生命周期的正确性。这使得 Rust 程序在保持高性能的同时,也达到了接近形式化验证级别的内存安全。在 Rust 中,双重释放不是“避免”的,而是“不可表示的”。
2025-10-30 21:22:46
418
原创 Rust 的 Drop Trait
假设我们需要管理一个外部资源,例如打开的文件描述符或数据库连接。我们可以使用Dropprintln!println!println!} // 作用域结束,自动调用 drop()这正体现了 Rust 的确定性析构(deterministic destruction)——即对象在离开作用域时立即被清理,不依赖 GC 或延迟回收。
2025-10-30 21:19:12
366
原创 Rust开发:所有权与解构(Destructuring)的关系
所有权与解构是 Rust 语义中相辅相成的两大支柱。所有权保证了内存安全与生命周期一致性;解构则在此基础上提供了灵活的数据访问与绑定方式。理解两者之间的关系,可以帮助开发者编写出既简洁又高效的 Rust 代码,实现真正意义上的零成本抽象(zero-cost abstraction)。在实际开发中,善用解构,不仅能简化复杂数据结构的访问,还能精确控制资源的移动与借用,是每一个深入掌握 Rust 的程序员必须修炼的基本功。
2025-10-30 21:17:00
376
空空如也
以太网交换机自动建立转发表工作原理
2022-12-20
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅