mirror of
https://github.com/gnu4cn/rust-lang-zh_CN.git
synced 2026-08-19 12:43:28 +08:00
Updated 'src/appendix/releases.md'.
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
# 编写猜数游戏
|
# 编写猜数游戏
|
||||||
|
|
||||||
|
|
||||||
咱们来一起完成一个实践项目,开始学习 Rust!这一章通过向咱们展示如何在实际程序中如何运用他们,向咱们介绍一些常见 Rust 概念。咱们将了解
|
我们来一起完成一个实践项目,开始学习 Rust!这一章通过向咱们展示如何在实际程序中如何运用他们,向咱们介绍一些常见 Rust 概念。咱们将了解
|
||||||
|
|
||||||
- `let`
|
- `let`
|
||||||
- `match`
|
- `match`
|
||||||
|
|||||||
@@ -74,33 +74,32 @@ stable: *
|
|||||||
|
|
||||||
Rust 每六周发布一次,就像时刻表一样。当咱们知道某次 Rust 发布的日期,就可以知道下一发布的日期:那就是六周后。每六周安排一次发布的一个好处是,下一班列车很快就会到来。若某项特性碰巧错过了某个特定发布,也无需担心:另一个发布很快就会出现!这有助于减少在发布截止日期邻近时,塞入可能尚未打磨完善的特性所带来的压力。
|
Rust 每六周发布一次,就像时刻表一样。当咱们知道某次 Rust 发布的日期,就可以知道下一发布的日期:那就是六周后。每六周安排一次发布的一个好处是,下一班列车很快就会到来。若某项特性碰巧错过了某个特定发布,也无需担心:另一个发布很快就会出现!这有助于减少在发布截止日期邻近时,塞入可能尚未打磨完善的特性所带来的压力。
|
||||||
|
|
||||||
得益于这一流程,咱们可以始终检出,check out,下一构建的 Rust,并自己验证到升级是容易的:若 beta 发布没有如预期那样工作,咱们就可以将其报告给 Rust 团队,并在下一稳定发布发生前修好他!beta 发布中的损坏相对较少,但 `rustc` 仍属于一个软件,而确实存在一些错误。
|
得益于这一流程,咱们可以岁时检出 Rust 的下一个构建,并请自验证是否可以轻松升级到该构建:当 beta 发布未如预期运行时,咱们可以向 Rust 团队报告而在下一个稳定发布之前修复他!beta 发布中的损坏相对较少,但 `rustc` 终究是个软件,因此确实存在一些 bug。
|
||||||
|
|
||||||
|
|
||||||
|
## 维护周期
|
||||||
|
|
||||||
|
Rust 项目支持最新的稳定版本。当新稳定版本发布后,旧版本即达到生命周期终止(end of life,EOL)。这意味着每个版本的维护周期为六周。
|
||||||
|
|
||||||
|
|
||||||
## 不稳定特性
|
## 不稳定特性
|
||||||
|
|
||||||
**Unstable Features**
|
这种发布模型还有一点需要注意:不稳定特性。Rust 使用了一种名为 “特性标志” 的技术,来决定特定发布中启用哪些特性。当某项新特性正处于积极开发中时,他会落地在主分支上,而因此会落地在每日发布中,但位于 *特性标志* 之后。而咱们作为用户,若希望尝试这项正在开发中的特性,the work-in-progress feature,是可以的,但必须使用 Rust 的每日发布,并通过适当的标志注解源代码以选择加入该特性。
|
||||||
|
|
||||||
|
当咱们使用的是 Rust 的 beta 或稳定发布,则无法使用任何特性标志。这是允许我们(Rust 团队)在宣布新特性永久稳定之前,允许我们获得对新特性的实际使用的关键。希望选择前沿技术的人可以这样做,而希望稳定可靠体验的人则可以坚持使用稳定发布,并知道他们的代码不会破坏。这正是 “稳而不停滞” 的体现。
|
||||||
|
|
||||||
|
这本书仅包含有关稳定特性的信息,因为正在开发中的特性仍在变化中,并且在编写本书时,与这些特性在稳定发布中启用之际,他们肯定将有所不同。咱们可以在线上找到仅每日发布的信息。
|
||||||
|
|
||||||
|
|
||||||
这种发布模型下,还有一个好处:不稳定特性。Rust 使用了一种名为 “特性标识,feature flags” 的技巧,来确定出给定发布中启用了哪些特性。若某项新特性处于活跃开发中,他就会落地在 `master` 分支上,而由此就会在每日发布中,但会有着一个 *特性标识*。而咱们,作为用户,希望尝试这个进展中的特性,the work-in-progress feature,时,咱们是可以尝试的,但必须使用 Rust 的每日发布,并使用恰当的标识来注解咱们的代码,来选用该特性。
|
## `rustup` 和 Rust 每日发布的作用
|
||||||
|
|
||||||
若咱们使用着 beta 或稳定发布的 Rust,那么就不能使用任何特性标识。这是 Rust 团队在声明那些新特性永久稳定前,允许咱们实际用到他们的关键。希望选用最新特性的人们,便可这样做,而想要一种扎实体验的人,则可坚持使用稳定发布,而清楚他们的代码不会破坏。这便是稳定但并非止步不前。
|
`rustup` 使咱们可以在全局或每个项目的基础上,在 Rust 的不同发布通道之间变换。默认情况下,咱们将安装稳定的 Rust。而比如要安装每日发布:
|
||||||
|
|
||||||
由于那些工作中的特性仍在便会,且在本书写作时和他们在稳定构建中启用时,其间他们肯定将有所不同,因此本书只包含了那些稳定特性的信息。咱们可以在线上找到那些仅每日发布有的特性文档。
|
|
||||||
|
|
||||||
|
|
||||||
## Rustup 与 Rust 每日发布所扮演的角色
|
|
||||||
|
|
||||||
**Rustup and the Role of Rust Nightly**
|
|
||||||
|
|
||||||
|
|
||||||
Rust 令到易于在全局或每个项目基础上,从不同发布通道的 Rust 之间改变。默认情况下,咱们将安装稳定发布的 Rust。而比如要安装每日发布:
|
|
||||||
|
|
||||||
```console
|
```console
|
||||||
$ rustup toolchain install nightly
|
$ rustup toolchain install nightly
|
||||||
```
|
```
|
||||||
|
|
||||||
咱们也可以使用 `rustup`,查看全部的 *工具链,toolchains* (Rust 的各个发布与关联组件)。下面就是本书一位作者的 Windows 计算机上的示例:
|
咱们也可以通过`rustup` 查看已安装的所有 *工具链* (Rust 和相关组件的发布)。下面是咱们的一位作者的 Windows 计算机上的示例:
|
||||||
|
|
||||||
```powershell
|
```powershell
|
||||||
> rustup toolchain list
|
> rustup toolchain list
|
||||||
|
|||||||
@@ -95,23 +95,17 @@ curl --proto '=https' --tlsv1.2 -sSf https://rsproxy.cn/rustup-init.sh | sh
|
|||||||
|
|
||||||
而要获得构建工具,咱们需要安装 Visual Studio 2022。当被问及要安装哪些工作负载时,要包括下面这些:
|
而要获得构建工具,咱们需要安装 Visual Studio 2022。当被问及要安装哪些工作负载时,要包括下面这些:
|
||||||
|
|
||||||
|
|
||||||
- “使用 C++ 进行桌面开发”
|
- “使用 C++ 进行桌面开发”
|
||||||
|
|
||||||
- Windows 10 或 11 SDK
|
- Windows 10 或 11 SDK
|
||||||
|
|
||||||
- 英语语言包组件,以及咱们所选的任何其他语言包
|
- 英语语言包组件,以及咱们所选的任何其他语言包
|
||||||
|
|
||||||
|
|
||||||
本书的其余部分使用了,可同时在 *cmd.exe* 和 PowerShell 中运行的命令。如果存在某些具体差异,我们将解释要使用哪个。
|
本书的其余部分使用了,可同时在 *cmd.exe* 和 PowerShell 中运行的命令。如果存在某些具体差异,我们将解释要使用哪个。
|
||||||
|
|
||||||
|
|
||||||
### 设置镜像加速
|
### 设置镜像加速
|
||||||
|
|
||||||
|
|
||||||
以管理员权限启动 Powershell,执行以下命令设置 `RUSTUP_DIST_SERER` 和 `RUSTUP_UPDATE_ROOT` 两个环境变量。
|
以管理员权限启动 Powershell,执行以下命令设置 `RUSTUP_DIST_SERER` 和 `RUSTUP_UPDATE_ROOT` 两个环境变量。
|
||||||
|
|
||||||
|
|
||||||
```powershell
|
```powershell
|
||||||
[environment]::SetEnvironmentvariable("RUSTUP_DIST_SERVER", "https://mirrors.ustc.edu.cn/rust-static", "User")
|
[environment]::SetEnvironmentvariable("RUSTUP_DIST_SERVER", "https://mirrors.ustc.edu.cn/rust-static", "User")
|
||||||
[environment]::SetEnvironmentvariable("RUSTUP_UPDATE_ROOT", "https://mirrors.ustc.edu.cn/rust-static/rustup", "User")
|
[environment]::SetEnvironmentvariable("RUSTUP_UPDATE_ROOT", "https://mirrors.ustc.edu.cn/rust-static/rustup", "User")
|
||||||
|
|||||||
Reference in New Issue
Block a user