网上经常有人吐槽:为什么 Rust 这么难呢?
Rust 是一种系统语言。作为一个系统 PL,不要对程序员隐藏底层计算机内存管理是非常重要的。出于这个原因,Rust 促使程序员公开许多原本隐藏在更高级语言中的细节。示例:指针、引用和相关的东西、内存分配器、不同的字符串类型、不同的 Fn特征、std::pin等等。
Rust 是一种静态语言。具有静态类型系统(或等效功能)的语言倾向于在其静态和动态级别上复制其功能,从而引入静态-动态二元性。将静态抽象转换为其动态对应物称为向上转换;逆过程称为向下转换。在内部push_handler,我们使用向上转换将静态处理程序转换为动态Handler类型以推送到最终向量。
简而言之,Rust 是一种静态语言同时是一种系统语言。它包含了不对程序员隐藏底层计算机内存管理的特性,同时它也有“无所畏惧的并发”——一个形式上正确但仍然具有误导性的陈述。
是的,你不再害怕数据竞赛,但你有 PAIN ,非常痛苦的 PAIN。正因如此,Rust 也并非解决了所有问题,你需要不影响其他特性的前提下,使用它专一方向的特性以解决问题,事情就变得有趣了。