头版Folia Daily Briefing
← 返回头版
科技互联网

Rust项目计划引入新特征以支持不可移动类型和保证析构执行

Rust项目提出在类型系统中引入三项新特征,以扩展类型的可操作能力[1]。这些特征分别为Move(表示类型可在内存中重定位)、Destruct(表示类型可隐式丢弃)和Forget(表示类型可通过mem::forget遗忘),允许类型选择退出历史上默认的移动和遗忘行为[1]。

该提案旨在解决自引用类型和需要保证析构函数执行的类型所面临的问题[1]。其中,实现!Move类型将使不可移动性成为类型属性而非位置属性,相比现有的Pin机制更为简洁[1]。同时,实现!Forget允许类型保证析构函数必然运行,这将解锁safe scoped spawn等编程模式[1]。

这项工作遵循Sized特征层级工作的先例,放宽了"所有类型都可以移动"和"所有类型都可以被遗忘"这两个长期假设[1]。根据计划,该工作将在编译器中实现最小可行产品、编写RFC规范,并在Linux内核中进行实际验证[1]。该提案明确范围外不涉及今年对Future特征的改动或更新[1]。


Rust编程语言类型系统Move特征Forget特征不可移动类型