帮助测试 Rust 2018

2018年10月30日 · Rust 核心团队

回顾七月份,我们讨论了"Rust 2018"。简而言之,我们正在启动一个长期里程碑周期,称之为“版本”(Editions)。版本(Editions)是一种方式,用于整合我们的常规六周发布周期所带来的增量进展,并围绕这些进展将 Rust 库、工具和文档有机地组织起来。大约每三年会选定一个版本:Rust 1.0 是“Rust 2015”,而 Rust 1.31 将是“Rust 2018”。每个版本都有一个主题;Rust 2015 的主题是“稳定性”,而 Rust 2018 的主题是“生产力”。

我们测试 Rust 2018 已有一段时间了,事情进展得相当顺利!距离 Rust 1.31 发布只剩下不到六周时间了,因此如果您能尝试一下 beta 版本,我们将不胜感激。

尝试 Rust 2018 有两种方法:更新现有项目,或者启动一个新项目。有关完整细节,请查阅版本指南(Edition Guide),但本文的其余部分是一个快速入门,旨在让您更轻松地开始。

如果出现任何问题,或感到困惑,请提交一个 issue 并告知我们。我们希望确保这是一个超级棒的版本!感谢您帮助我们让 Rust 变得更好。<3

设置:安装 Rust beta 版本

首先,您需要安装 Rust 的 beta 发布通道。使用 Rustup,这非常简单:

$ rustup install beta

要使用此 Rust 通道而非默认通道,您可以在任何 rustc 或 cargo 命令后附加 +beta

$ rustc +beta --version
$ cargo +beta build

这让您可以将 stable 版本保留为默认,同时使用 beta 版本进行实验。

启动一个新项目

要使用 Rust 2018 启动一个新项目

$ cargo +beta new my-sample-project

什么都没变!嗯,有些东西变了。查看 Cargo.toml

[package]
name = "my-sample-project"
version = "0.1.0"
authors = ["Your Name <you@example.com>"]
edition = "2018"

[dependencies]

那个新的 edition = "2018" 键值对意味着您正在使用 Rust 2018。如果它不存在,则与 edition = "2015" 相同,因此所有现有项目都可以继续工作。

转换现有项目

您也可以将现有项目转换为 Rust 2018。请记住,您的任何依赖项都不需要更新即可使其工作;Rust 2018 和 2015 可以无缝互操作!

第一步是运行 cargo fix

$ cargo fix --edition

这将检查您的代码,并自动修复它可以修复的任何问题。 cargo fix 仍然是比较新的,因此它并非总是能够自动修复您的代码。如果 cargo fix 无法修复某个问题,它会将无法修复的警告打印到控制台。如果您看到这些警告之一,您将不得不手动更新您的代码。请查看版本指南中的相应部分以获取帮助,如果您遇到问题,请到用户论坛寻求帮助。

继续运行 cargo fix --edition 直到没有更多警告。

恭喜!您的代码现在在 Rust 2015 和 Rust 2018 中都有效!

完成后,您可以通过更新 Cargo.toml 来确定使用 Rust 2018。

[package]
name = "my-sample-project"
version = "0.1.0"
authors = ["Your Name <you@example.com>"]
edition = "2018"

[dependencies]

看到 edition = "2018" 了吗?这就是让您选择启用新功能的方法。设置它,运行 cargo +beta build,然后您就可以开始了!