Rust 1.80 发布:新增 LazyCell / LazyLock 类型

作者:admin时间:24-10-05阅读数:23人阅读

7 月 29 日消息,Rust语言1.80.0版本已于7月25日发布,该版本在效率、代码安全性和灵活性方面均有大幅升级。

获悉,该版本新增 LazyCell 及 LazyLock 两项类型,可以将数据的初始化延迟到首次访问时,允许软件按需加载资源进行即时计算,从而大幅提升大型应用的启动速度和运行效率,同时有助于减少软件整体RAM使用量。

具体来说,LazyLock 类型适用于多线程环境,性能开销更大;LazyCell 只能在单线程环境使用,不过性能开销更小。而相较于Rust 1.70 加入的 onceCell / OnceLock“同款”延迟初始化类型,LazyCell / LazyLock 本身自带初始化逻辑,因此不再需要通过外部方法进行初始化,使用起来相对更方便。

此外,Rust 1.80 还能够通过检查 cfg 名称和值来增强代码的正确性和可靠性,相关功能可检测和警告开发者拼错了 cfg 名称 / 值,避免因为此类简单错误造成编译出错,从而能够提升代码整体质量和开发效率。

同时注意到,Rust 1.80 还引入了一项名为“排他范围模式(Exclusive Range)”的新功能,开发者现在可以使用 a..b 或..b 语法来处理连续范围,有点类似 Range 和 RangeTo 表达式,允许范围之间不会出现间隔 / 重叠,从而令代码更加清晰,维持行文逻辑一致性。

来源: