近年来,Rust 发展十分迅速, 2021 年,Rust 基金会成立,Mozilla、Amazon、华为、谷歌、微软作为创始白金成员,五家企业承诺在两年时间里,每年投入不少于 100 万美元的预算,用于 Rust 项目的开发、维护和推广。
华为会成为Rust 基金会的创始白金成员,可能会令很多人可能会吃惊。据华为开源首席专家、Rust 基金会董事侯培新在一次采访中提道,华为的业务形态中有大量需要高网络安全、高性能的场景,网络安全中由不正确的内存访问引起的问题占有相当突出的比例,而 Rust 就是一款以解决编程时引入内存访问问题、同时保持高性能的系统编程语言,这和华为的目标场景高度匹配。
一、安装Rust学习Rust的第一步是安装 Rust。 在这里将通过 rustup 下载 Rust,这是一个用于管理 Rust 版本和相关工具的命令行工具, 需要连接互联网才能下载。
(一)、在 Linux 或 macOS 上安装 rustup
如果使用的是 Linux 或 macOS,请打开终端并输入以下命令:
$ curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf | sh该命令下载脚本并开始安装 rustup 工具,该工具将安装 Rust 的最新稳定版本。 系统可能会提示您输入密码。 如果安装成功,会出现下面一行:
Rust is installed now. Great!
另外,还需要一个链接器linker,这是 Rust 用来将其编译输出连接到一个文件中的程序。 您很可能已经拥有一个。 如果出现链接器错误,则应安装 C 编译器,该编译器通常包含链接器。 C 编译器也很有用,因为一些常见的 Rust 包依赖于 C 代码,并且需要 C 编译器。
在 macOS 上,您可以通过运行以下命令来获取 C 编译器:
$ xcode-select --installLinux 用户通常应该根据其发行版的文档安装 GCC 或 Clang。 例如,如果使用 Ubuntu,则可以安装 build-essential 包。
(二)、在 Windows 上安装 rustup
在 Windows 上,访问https://forge.rust-lang.org/infra/other-installation-methods.html#standalone并按照安装 Rust 的说明进行操作。
在安装过程中的某个时刻,会有提示信息,指明还需要 Visual Studio 2013 或更高版本的 MSVC 构建工具。
要获取构建工具,您需要安装 Visual Studio 2022。当被询问要安装哪些工作负载时,包括:
使用 C++ 进行桌面开发Windows 10 或 11 SDK英语语言包组件以及您选择的任何其他语言包二、编写Rust 版的Hello World现在已经安装了 Rust,是时候编写第一个 Rust 程序了。 学习一门新语言时,传统做法是编写一个小程序来打印文本“Hello, world!” 到屏幕上,所以我们在这里也做同样的事情!
(一)、创建项目目录
您将首先创建一个目录来存储 Rust 代码。 对于 Rust 来说,你的代码所在的位置并不重要,但对于本书中的练习和项目,我们建议在你的主目录中创建一个项目目录,并将所有项目保存在那里。
打开终端并输入以下命令来创建项目目录和“Hello, world!”目录 项目位于项目目录中。
对于 Linux、macOS 和 Windows 上的 PowerShell,请输入:
$ mkdir ~/projects$ cd ~/projects$ mkdir hello_world$ cd hello_world对于 Windows CMD,请输入:
> mkdir "%USERPROFILE%\projects"> cd /d "%USERPROFILE%\projects"> mkdir hello_world> cd hello_world(二)、编写并运行 Rust 程序
接下来,创建一个新的源文件并将其命名为 main.rs。 Rust 文件始终以 .rs 扩展名结尾。 如果文件名中使用了多个单词,Rust的惯例是使用下划线分隔它们。 例如,使用 hello_world.rs 而不是 helloworld.rs。
现在打开刚刚创建的 main.rs 文件并输入清单 1-1 中的代码。
文件名: main.rs
fn main() { println!("Hello, world!");}保存文件并返回到 ~/projects/hello_world 目录中的终端窗口。 在 Linux 或 macOS 上,输入以下命令来编译并运行该文件:
$ rustc main.rs$ ./mainHello, world!在 Windows 上,输入命令 .\main.exe 而不是 ./main:
> rustc main.rs> .\main.exeHello, world!无论您使用什么操作系统,字符串 Hello, world! 应该打印到终端。
恭喜! 你已经正式编写了一个 Rust 程序。 这使您成为一名 Rust 程序员——欢迎!
(三)、理解helloworld程序
让我们回顾一下这个Helloworld Rust程序。 这是拼图的第一块:
fn main() {}这些行定义了一个名为 main 的函数。 main 函数很特殊:它始终是每个可执行 Rust 程序中运行的第一个代码。
这里,第一行声明了一个名为 main 的函数,它没有参数,也不返回任何内容。 如果有参数,则将其放在括号 () 内。
函数体被包裹在{}中。 Rust 要求所有函数体都用大括号括起来。 将左大括号与函数声明放在同一行,并在中间添加一个空格是一种很好的风格。
注意:
如果想在 Rust 项目中坚持使用标准样式,可以使用名为 rustfmt 的自动格式化工具以特定样式格式化代码。 Rust 团队已将此工具包含在标准 Rust 发行版中,就像 rustc 一样,因此它应该已经安装在计算机上的Rust环境中!
主函数的主体包含以下代码:
println!("Hello, world!");这一行完成了这个小程序中的所有工作:它将文本打印到屏幕上。 这里有四个重要细节需要注意。
首先,Rust 风格是用四个空格缩进,而不是制表符。
第二,println! 调用 Rust 宏。 如果它调用了一个函数,那么它将被输入为 println (不带!)。 后面会更详细地讨论 Rust 宏。现在, 只需要知道使用 ! 意味着正在调用宏而不是普通函数,并且宏并不总是遵循与函数相同的规则。
第三,字符串“Hello, world!” 。 将这个字符串作为参数传递给 println!,并将该字符串打印到屏幕上。
第四,Rust语句以分号 (;) 结束该行,这表明该表达式已结束,下一个表达式已准备好开始。 大多数 Rust 代码行都以分号结尾。
第五,编译和运行Rust
刚刚运行了一个新创建的程序,所以 检查一下该过程中的每个步骤。
在运行 Rust 程序之前,必须使用 Rust 编译器来编译它,方法是输入 rustc 命令并向其传递源文件的名称,如下所示:
$ rustc main.rs
如果之前您之前有 C 或 C++ 背景,您会注意到这与 gcc 或 clang 类似。 编译成功后,Rust 输出一个二进制可执行文件。
在 Linux、macOS 和 Windows 上的 PowerShell 上,您可以通过在 shell 中输入 ls 命令来查看可执行文件:
$ls
在 Linux 和 macOS 上,您将看到两个文件。 使用 Windows 上的 PowerShell,您将看到与使用 CMD 看到的相同的三个文件。
这显示了扩展名为 .rs 的源代码文件、可执行文件(Windows 上为 main.exe,但在所有其他平台上为 main),以及使用 Windows 时包含扩展名为 .pdb 的调试信息的文件。 从这里,您运行 main 或 main.exe 文件,如下所示:
$ ./main在Window 平台运行下面的语句:
.\main.exe如果你的 main.rs 是你的“Hello, world!” 程序中,这一行打印 Hello, world! 到您的终端。
如果您更熟悉动态语言,例如 Ruby、Python 或 JavaScript,您可能不习惯将程序编译和运行作为单独的步骤。
Rust 是一种提前编译的语言,这意味着您可以编译程序并将可执行文件提供给其他人,即使没有安装 Rust,他们也可以运行它。