rust 安装

    第一步是安装Rust。 我们将通过rustup(一个用于管理Rust版本和相关工具的命令行工具)下载Rust。 您需要互联网连接才能下载。 注意:如果由于某些原因您不想使用rustup,请参阅Rust安装页面以获取其他选项。 以下步骤将安装Rust编译器的最新稳定版本。 Rust的稳定性保证可确保本书中所有可编译的示例都将继续使用较新的Rust版本进行编译。 不同版本之间的输出可能会略有不同,因为Rust经常会改进错误消息和警告。 换句话说,使用这些步骤安装的任何较新的稳定版本的Rust都应该可以按本书的预期工作。 命令行符号 在本章以及整本书中,我们将展示一些在终端中使用的命令。 您应在终端中输入的行均以$开头。 您无需输入$字符; 它指示每个命令的开始。 不以$开头的行通 常显示前一个命令的输出。 此外,特定于PowerShell的示例将使用>而不是$。

在Linux或macOS上安装rustup 如果您使用的是Linux或macOS,请打开一个终端并输入以下命令:

该命令将下载一个脚本并开始安装rustup工具,该工具将安装Rust的最新稳定版本。 可能会提示您输入密码。 如果安装成功,将显示以下行:

如果愿意,请在运行脚本之前先下载脚本并进行检查。
下次登录后,安装脚本会自动将Rust添加到系统PATH中。 如果要立即开始使用Rust,而不是重新启动终端,请在Shell中运行以下命令,以将Rust手动添加到系统PATH中:

另外,您可以将以下行添加到〜/ .bash_profile中:

此外,您将需要某种链接器。 可能已经安装了一个链接器,但是当您尝试编译Rust程序并收到错误消息,表明该链接器无法执行时,意味着您的系统上尚未安装链接器,您 需要手动安装一个链接器。 C编译器通常带有正确的链接器。 查看平台的文档,了解如何安装C编译器。 另外,一些常见的Rust包依赖于C代码,并且需要C编译器。 因此,可能值得立即安装一个
在Windows上安装rustup
在Windows上,转到https://www.rust-lang.org/tools/install并按照说明安装Rust。 在安装过程中的某个时刻,您会收到一条消息,说明您还需要用于Visual Studio 2013或更高版本的C ++生成工具。 获取构建工具的最简单方法是为Visual Studio 2019安装构建工具。这些工具在其他工具和框架部分中。
本书的其余部分使用在cmd.exe和PowerShell中均可使用的命令。 如果有特定差异,我们将说明使用哪个。
更新和卸载Rust
通过rustup安装Rust后,很容易更新到最新版本。 在您的Shell中,运行以下更新脚本:

要卸载Rust和rustup,请从您的shell中运行以下卸载脚本:

故障排除
要检查是否正确安装了Rust,请打开Shell并输入以下行:

您应该看到已发布的最新稳定版本的版本号,提交哈希和提交日期,格式如下:

如果您看到此信息,则说明您已成功安装Rust! 如果您没有看到此信息,并且您使用的是Windows,请检查Rust是否在%PATH%系统变量中。 如果一切正确,但Rust仍然无法正常工作,您可以在许多地方获得帮助。 最简单的是官方的Rust Discord上的#beginners频道。 在这里,您可以与其他可以帮助您的Rustaceans(我们称为自己的傻昵称)聊天。 其他重要资源包括the Users forum和Stack Overflow.。
本地文档
Rust的安装还包括本地文档的副本,因此您可以脱机阅读。 运行rustup doc在浏览器中打开本地文档。
每当标准库提供类型或函数时,如果您不确定它的用途或用法,请使用应用程序编程接口(API)文档进行查找!

rust

      注意:这本书的版本与No Starch Press发行的印刷版和电子书格式的Rust编程语言相同。
      欢迎使用Rust编程语言,这是一本有关Rust的入门书籍。 Rust编程语言可帮助您编写更快,更可靠的软件。 高级人机工程学和低级控制在编程语言设计中常常是矛盾的。 Rust挑战向这个冲突发起了挑战。 通过平衡强大的技术能力和出色的开发人员经验,Rust为您提供了控制底层细节(例如内存的使用)的选项,而无需传统上与此类控制相关的所有麻烦。
Rust 适合谁?
    由于多种原因,Rust是许多人的理想选择。 让我们看一些最重要的小组。
开发团队
    事实证明,Rust是用于在具有不同级别的系统编程知识的大型开发人员团队之间进行协作的高效工具。 低级代码容易出现各种细微的错误,只有在经验丰富的开发人员进行大量测试和仔细的代码审查之后,才能发现大多数其他语言中的错误。 在Rust中,编译器通过拒绝使用这些难以捉摸的错误(包括并发错误)来编译代码,从而起到了看门人的作用。 通过与编译器并肩工作,团队可以将时间花在专注于程序的逻辑上,而不是寻找错误。
    Rust还为系统编程世界带来了当代开发人员的工具:
        · Cargo是随附的依赖项管理器和构建工具,使添加,编译和管理依赖项在整个Rust生态系统中变得轻松而一致。
      · Rustfmt确保开发人员之间一致的编码风格。
      · Rust语言服务器为集成开发环境(IDE)集成提供了强大的功能,以实现代码完成和内联错误消息。
    通过在Rust生态系统中使用这些工具和其他工具,开发人员可以在编写系统级代码时提高工作效率。
学生们
    Rust适用于学生以及对学习系统概念感兴趣的人。 使用Rust,许多人了解了诸如操作系统开发之类的主题。 社区非常欢迎并乐于回答学生的问题。 通过本书的努力,Rust团队希望让更多的人更容易理解系统概念,特别是那些刚开始编程的人。
公司
    数百家大小公司都在生产中使用Rust来完成各种任务。 这些任务包括命令行工具,Web服务,DevOps工具,嵌入式设备,音频和视频分析和转码,加密货币,生物信息学,搜索引擎,物联网应用程序,机器学习,甚至是Firefox Web浏览器的主要部分。
开源开发人员
    Rust适用于想要构建Rust编程语言,社区,开发人员工具和库的人。 我们希望您能为Rust语言做出贡献。
重视程序速度和稳定性的人
    Rust适用于渴望使用某种语言的速度和稳定性的人。 所谓速度,是指您可以使用Rust创建的程序的速度,以及Rust允许您编写程序的速度。 Rust编译器的检查通过添加功能和重构来确保稳定性。 这与没有进行这些检查的语言中易碎的旧代码相反,开发人员通常不敢对其进行修改。 通过努力实现零成本抽象,将高级功能编译为低级代码的速度与手动编写的代码一样快,Rust努力使安全代码也成为快速代码。
Rust语言希望也能支持其他许多用户。 这里提到的只是最大的利益相关者。 总体而言,Rust的最大志向是通过提供安全性,生产率,速度和人体工程学来消除程序员数十年来接受的折衷方案。 尝试一下Rust,看看它的选择是否对您有用。
这本书适合谁
     本书假定您已经用另一种编程语言编写了代码,但没有对哪种编程语言做任何假设。 我们已尝试使具有广泛编程背景的人员可以广泛使用这些材料。 我们没有花很多时间谈论什么是编程或如何思考它。 如果您是编程的新手,那么最好阅读一本专门介绍编程的书,为您提供更好的服务。
如何使用这本书
    一般而言,本书假定您是从前到后依次阅读的。 后面的章节以前面的章节中的概念为基础,而前面的章节可能不会深入研究某个主题。 我们通常会在下一章中重新讨论该主题。
    在本书中,您会发现两种章节:概念章节和项目章节。 在概念章节中,您将学习Rust的一个方面。 在项目章节中,我们将一起应用您到目前为止所学到的内容来构建小型程序。 第2、12和20章是项目的章节; 其余的是概念章节。
第1章介绍了如何安装Rust,以及如何编写“ Hello,world!”。 程序,以及如何使用Rust的包裹管理器和构建工具Cargo。
第2章是Rust语言的动手入门。
在这里,我们从高层次介绍概念,以后的章节将提供更多详细信息。 如果您想立即弄脏手,那么第二章就是您的最佳选择。 起初,您甚至可能想跳过第3章,它涵盖了Rust与其他编程语言类似的功能,而直接进入第4章以了解Rust的所有权系统。 但是,如果您是一个特别细致的学习者,并且喜欢在继续学习下一个细节之前先学习每一个细节,那么您可能想跳过第2章,直接进入第3章,而当您想学习一个细节时又回到第2章。 应用您所学到的细节的项目。
第5章讨论结构和方法,
第6章讨论枚举,匹配表达式以及if let控制流的构造。 您将使用结构和枚举在Rust中创建自定义类型。
在第7章中,您将了解Rust的模块系统以及用于组织代码及其公共应用程序编程接口(API)的隐私权规则。
第8章讨论了标准库提供的一些常见的集合数据结构,例如向量,字符串和哈希图。
第9章探讨了Rust的错误处理哲学和技术。
第10章深入探讨了泛型,特征和生存期,使您能够定义适用于多种类型的代码。
第11章是关于测试的,即使使用Rust的安全保证,也必须进行测试,以确保您的程序逻辑正确。
在第12章中,我们将通过grep命令行工具构建自己的功能子集,该工具可在文件中搜索文本。 为此,我们将使用上一章中讨论的许多概念。
第13章探讨了闭包和迭代器:Rust的功能,它们来自函数式编程语言。
在第14章中,我们将更深入地研究Cargo,并讨论与他人共享您的图书馆的最佳做法。
第15章讨论了标准库提供的智能指针以及启用其功能的特征。
在第16章中,我们将介绍并发编程的不同模型,并讨论Rust如何帮助您轻松地在多个线程中进行编程。
第17章介绍了Rust习惯用法与您可能熟悉的面向对象编程原理的比较。
第18章是有关模式和模式匹配的参考,它们是在整个Rust程序中表达思想的有力方法。
第19章包含了一系列有趣的高级主题,包括不安全的Rust,宏以及有关生存期,特征,类型,函数和闭包的更多信息。
在第20章中,我们将完成一个项目,在该项目中我们将实现一个低级多线程Web服务器!
最后,一些附录以更类似参考的格式包含有关该语言的有用信息。
附录A涵盖了Rust的关键字,
附录B涵盖了Rust的运算符和符号,
附录C涵盖了标准库提供的可派生特征,
附录D涵盖了一些有用的开发工具,
附录E解释了Rust版本。
读这本书没有错误的方法:如果您想跳过,那就去吧! 如果遇到任何困惑,您可能必须跳回到前面的章节。 但是,尽一切可能为您工作。
学习Rust的过程的重要部分是学习如何读取编译器显示的错误消息:这些将指导您使用有效的代码。 因此,我们将提供许多无法编译的示例,以及编译器将在每种情况下向您显示的错误消息。 要知道,如果您输入并运行一个随机示例,则该示例可能无法编译! 确保您阅读了周围的文字,以查看您尝试运行的示例是否有误。 Ferris还将帮助您区分不起作用的代码:
在大多数情况下,我们会引导您找到所有未编译代码的正确版本。
源代码
生成本书的源文件可以在GitHub上找到。