开发团队很高兴推出 Rust 1.36!
Rust 1.36 有什么新功能?
现在更多:
- 终于在 Rust 1.36 中 稳定的 特质 未来。
- 板条箱分配。
从 Rust 1.36 开始,依赖于全局分配器的 std 部分(例如 Vec ),位于分配箱中。 现在std将重新导出这些部分。 更多关于它. - 也许单位而不是 mem::uninitialized。
在以前的版本中,mem::uninitialized 允许您绕过初始化检查,它用于惰性数组分配,但这个函数非常危险(更), 这样 MaybeUninit 类型就稳定了,这样更安全。
好吧,自从 MaybeUninit 是一个更安全的选择,那么从 Rust 1.38 开始,mem::uninitialized 将是一个已弃用的功能。
如果您想了解有关未初始化内存的更多信息,可以阅读 Alexis Beingessner 的这篇博客文章。 - Rust 2015 的 NLL。
公告中 锈1.31.0 开发人员向我们介绍了 NLL(非词汇生命周期),这是对语言的一项改进,使借用检查器更加智能、更加用户友好。 例子:
fn 主(){
令 mut x = 5;
让 y = &x;
令 z = &mut x; // 在 1.31.0 之前这是不允许的。
}在 1.31.0 版本中,NLL 仅适用于 Rust 2018,开发人员承诺将添加对 Rust 2015 的支持。
如果您想了解更多关于 NLL 的信息,您可以阅读更多内容 博客条目 (菲利克斯·克洛克斯)。 - Cargo 的新标志是“离线”。
Rust 1.36 稳定了 Cargo 的新标志。 --offline 标志告诉 Cargo 使用本地缓存的依赖项,以便稍后可以离线使用它们。 当必要的依赖项无法离线使用,并且仍然需要互联网时,Cargo 将返回错误。 为了预先下载依赖项,您可以使用 Cargo fetch 命令,该命令将下载所有依赖项。 - 这是 您可以阅读更详细的更改概述。
标准库也有变化:
- dbg!() 宏现在可以接受多个参数。
- 一些 API 现在被标记为 const:
- 已稳定的新 API:
- 对标准库的其他更改可以在这里找到 这里.
来源: linux.org.ru