您现在的位置是:首页 >技术教程 >Rust 附录网站首页技术教程
Rust 附录
5、Appendix E - Editions(the book)
在第1章中,您看到cargo new
向Cargo.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
。