Rust 附录

5、Appendix E - Editions(the book)

edition guide 官网

在第1章中,您看到cargo newCargo.toml文件添加了一些元数据里有关于edition的。本附录讨论了这意味着什么!

Rust语言和编译器的发布周期为六周,这意味着用户可以不断获得新特性。其他编程语言发布较大更改的频率较低;Rust更频繁地发布较小的更新。一段时间后,所有这些微小的变化一直增加。但是从一个版本到另一个版本,回顾过去并说:“哇,在Rust 1.10和Rust 1.31之间,Rust发生了很大的变化!”

每隔两三年,Rust团队就会生成一个新的Rust edition。每个版本都将已提交的功能整合到一个清晰的包中,并附带完全更新的文档和工具。新editions 通常在六周的发布过程中发布。

Edition 为不同的人服务不同的目的:

  • 对于活跃的Rust用户,新edition 将增量更改整合到一个易于理解的包中。
  • 对于非用户来说,新edition 标志着一些主要的改进已经实现,这可能会让Rust值得再看一遍。
  • 对于那些开发Rust的人来说,新edition 为整个项目提供了一个集合点。

在撰写本文时,有三个Rust版本可用:Rust 2015, Rust 2018和Rust 2021。本书使用Rust 2021版 idioms编写。

edition 键在 Cargo.toml指示编译器应该为您的代码使用哪个edition 。如果该键不存在,Rust出于向后兼容性的原因使用2015作为edition 值。

每个项目都可以选择2015默认edition以外的其他版本。Edition可以包含不兼容的更改,例如包含与代码中的标识符冲突的新关键字。但是,除非您选择加入这些更改,否则即使您升级了所使用的Rust编译器version ,您的代码也将继续编译。

所有Rust编译器versions 都支持在该编译器发布之前存在的任何edition ,并且它们可以将任何支持的版本链接在一起。版本更改只影响编译器最初解析代码的方式。因此,如果你正在使用Rust 2015,而你的一个依赖项使用Rust 2018,你的项目将编译并能够使用该依赖项。相反的情况,你的项目使用Rust 2018,而依赖项使用Rust 2015,也可以工作。

需要明确的是:大多数功能将在所有editions上可用。随着新的stable 发布,使用任何Rust edition 的开发人员都将继续看到改进。然而,在某些情况下,主要是在添加新关键字时,一些新特性可能只在以后的editions中可用。如果您想利用这些特性,则需要切换editions

要了解更多细节,Edition Guide是一本关于editions 的完整书籍,它列举了editions 之间的差异,并解释了如何通过cargo fix自动将代码升级到新edition

猜你喜欢

转载自blog.csdn.net/chinusyan/article/details/130260476