如何激怒一个Rust爱好者?让他用Rust实现一个双向链表即可!
总所周知,Rust中是不能同时存在两个可变引用的,所以在Rust中实现双向链表就会变得非常反人类(因为需要同时存在前后节点同时指向对方的情况);
同时,双向链表也引入了循环引用的问题,这也是导致内存难以释放的一个场景;
没想到一个简简单单的双向链表居然涉及如此之多的问题!
本文就使用Unsafe Rust实现了双向链表;
源代码:
如何激怒一个Rust爱好者?让他用Rust实现一个双向链表即可!
总所周知,Rust中是不能同时存在两个可变引用的,所以在Rust中实现双向链表就会变得非常反人类(因为需要同时存在前后节点同时指向对方的情况);
同时,双向链表也引入了循环引用的问题,这也是导致内存难以释放的一个场景;
没想到一个简简单单的双向链表居然涉及如此之多的问题!
本文就使用Unsafe Rust实现了双向链表;
源代码:
距离上一次写文章已经过去三个多月了,最近一直在研究Rust和K8S的源码;
这里推荐一些我看过的Rust的入门书籍吧~
源代码:
本文展示了如何在Rust中使用PhantomType消除重复代码;
源代码:
最近在学习Rust,而Rust和WebAssembly的结合正在如火如荼的进行着;相比于Go,Rust和WebAssembly的结合可以说是更加成熟,包括了编译优化、甚至编译完成可以一键发布到npm库;
本文讲述了如何使用Rust实现一个Hello-World的WebAssembly;
关于Go实现WebAssembly,见:
源代码:
学习Rust零零碎碎已经有两周的时间了,老实说最开始其实是本着学习好C++的态度打算好好学习C++的;但是个人对自己的代码能力并没有什么自信,因为C++实在太太太太太容易写出Memory-Leak的代码了!
最后,就打算试一试Rust这门语言。用过之后不得不说,Rust应该是神级的Program Language了,编译检查简直严格到变态!
本文主要想谈一谈我在学习了Rust两周后的一些感受;
源代码: