Rust 的自动内存管理使开发人员免于指针操作,并防止低级内存操作引起的问题,例如释放后内存访问、空指针取消引用、缓冲区溢出等。 正在开发一个包管理器来分发库、确保组装并管理项目的依赖关系。
主
- 宏提供了使用元素片段将其转换为特征(trait)、实现(impl)或外部块的代码的能力。 例如:
宏规则! mac_trait {
($i:项目) => {
特质 T { $i }
}
}
mac_trait! {
fn foo() {}
}将导致生成:
特质 T {
fn foo() {}
} - 改进了原语、引用和二进制操作的类型检测。
例如,以下代码以前会导致错误,现在可以编译(Rust 现在可以正确确定 0.0 和 &0.0 必须是 f32 类型):令 n: f32 = 0.0 + &0.0;
- Cargo 中添加了一个新的环境变量 CARGO_BIN_EXE_{name},该变量在构建集成测试时设置,并允许您确定包的“[[bin]]”部分中定义的可执行文件的完整路径。
- If 语句允许使用“#[cfg()]”等属性。
- 该库提供了直接将关联常量用于整数和小数类型的能力,而无需导入模块。 例如,您可以立即写入 u32::MAX 或 f32::NAN,而无需先指定“use std::u32”和“use std::f32”。
- 添加了新模块
原始 ,它重新导出 Rust 原始类型,例如当您需要编写宏并确保类型不隐藏时。 - 新的部分 API 已转移到稳定类别,包括稳定的
一旦::is_completed,
f32::LOG10_2,
f32::LOG2_10,
f64::LOG10_2,
f64::LOG2_10 和
迭代器::once_with。
来源: opennet.ru