Rust入门指南

399 阅读7分钟

一、Rust的安装

Rust 的官方网址是: www.rust-lang.org/

1.1. 安装 Rust

1.1.1. 脚本安装方式

使用电脑打开到 Rust 的官方网站之后,Rust 会判断我们当前的操作系统并引导我们进行安装。

Windows 的 Linux子系统、Linux、MacOS 只需执行以下命令,即可根据提示进行安装

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

推荐使用脚本的方式进行安装,安装脚本会将 Rust 相关组件安装自己的用户目录上,并且设置好相关的环境变量

1.1.2. 二进制安装包安装

Rust 也支持使用二进制文件包的方式的安装方式。

打开其他安装方式的页面:forge.rust-lang.org/infra/other…,我们找到二进制安装包下载链接的页面位置,如下图所示

截图_选择区域_20240331130927.jpg

在编写此文档的时候,Rust的最新稳定版本是1.60.0,你在打开的时候,页面可能有所变化。

找到与自己操作系统匹配的安装包,点击下载进行安装即可。

1.1.3. 包管理工具安装

包管理工具可以快速安装Rust,如mac电脑使用homebrew安装,如下命令

brew install rust

1.1.4. 安装验证

安装完成后,使用以下命令查看版本号,如果正常显示rust版本信息代表安装成功,否则重启终端或者检查其他原因

rustc --version

使用脚本方式安装的 Rust 会包含一个 rustup 工具,我们还可以使用 rustupdoc 指令通过浏览器打开本地文档,如下

rustup doc

1.2. IDE开发

如果使用 VsCode 或者 Intellij Idea 进行 Rust 代码开发,还可以在插件市场搜索 Rust,安装上 Rust 的官方插件,可以更好地在 IDE 中使用 Rust 的相关功能。

二、运行Hello World

2.1. 文件命名规范

我们通常使用一个 英文名称的 空目录作为 Rust 项目的目录,并遵循以下规范:

  • 程序文件名后缀为: rs
  • 文件命名应当使用小写,如果名称包含多个单词,每个单词之间使用下划线隔开,如: hello_world.rs

2.2. 编写第一个Rust程序

2.2.1. 创建代码

创建一个名为hello_world的目录,在目录下创建main.rs文件,写入以下内容

fn main() {
    println!("Hello, world!");
}

以上内容就是 Rust 程序最简单的代码:

  • 定义函数: fn main(){} 代表一个没有参数也没有返回值的名为main的函数

  • main函数: 在 Rust 中, mian 函数是 Rust 可执行程序的入口

  • 打印文本: println!("Hello, world!"),Rust代码的缩进是4个空格,而不是tab,println!是 Rust macro(宏),如果是函数,就没有!,Rust代码以;结尾

以上代码的功能是: 在mian 函数中调用 println!宏 在控制台打印了一条字符串:"Hello, world!"

2.2.2. 编译代码

使用以下命令进行编译

rustc main.rs

如果是在windows编译,生成的可执行文件名称为main.exe,使用以下命令执行

.\main.exe

如果是在mac/Linux中编译,生成的可执行文件名称为main,使用以下命令执行

./main

2.3. 总结

Rust 代码先编译成二进制可执行程序才能运行,编译命令为 rustc 源代码文件名 ,如

rustc main.rs
  • 编译成功后,会生成一个二进制可执行文件,在 Windows 上还会多出一个后缀为 .pdb 的文件,里面包含调试信息

  • Rust 是 ahead-of-time 编译的语言,可以先编译程序,然后把可执行文件交给别人运行,无需安装 Rust

  • rustc 只适合简单的 Rust 程序,如果源代码比较多,使用 rustc 并不合适,在后续将会介绍 Cargo,用于解决这个问题

三、Cargo构建工具

3.1. Cargo 简介

对于简单的程序,我们使用 rustc 命令即可编译,但对于较为复杂的程序,应当使用 Cargo 这个工具。Cargo 是 Rust 的构建系统和包管理工具,主要用于依赖库安装和代码构建。我们使用脚本安装 Rust 的时候已经安装上了 Cargo,使用以下查看 Cargo 版本的命令可以验证 Cargo 是否已经正常工作

cargo --version

3.2. 使用Cargo创建项目

3.2.1. 初始化项目

创建项目,如下命令

cargo new hello_cargo

命令执行之后,生成一个名为 hello_cargo 项目目录,目录中包含以下内容

  • src: 这个目录用于存放源代码,并默认生成了一个 main.rs 文件
  • .gitignore: 默认生成的 gitignore 文件, 实际上,我们使用 Cargo 创建项目的时候,Cargo 帮我们在项目目录初始化了 git 仓库
  • Cargo.toml: TOML(Tom's Obvious, Minimal Language)格式,是 Cargo 配置文件的格式,以下是默认的内容
[package]
name = "hello_cargo"
version = "0.1.0"
edition = "2021"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]

3.2.2. 包信息配置

  • package: 是一个区域标题,在这里表示下方配置内容用来配置包(package)的

package下的配置项:

  • name: 项目名
  • version: 项目版本
  • authors: 项目作者
  • edition: 项目使用的Rust版本

3.2.3. 依赖配置

  • dependencies: 该区域之下的内容,标识项目依赖的代码包或代码库,在 Rust 里,代码的包或库被称为 crate

3.2.4. 文件结构说明

Cargo生成的 main.rs 在 src 目录下,而 Cargo.toml 在项目顶层下,源代码都应该在 src 目录下,顶层目录可以放置:README、许可信息、配置文件、其他与程序源代码无关的文件。

如果在创建项目的时候没有使用 Cargo 来创建,也可以把项目转化为 Cargo 项目,操作如下:

  • 把源代码文件移到 src 目录下
  • 创建 Cargo.toml 并填写相应的配置

3.3. 构建项目

3.3.1. 编译代码

使用以下命令编译代码,生成二进制可执行文件

cargo build

如果是在Mac/Linux操作系统中,生成的二进制可执行文件路径如下

target/debug/hello_cargo

如果是在windows中,生成的二进制可执行文件路径如下

target/debug/hello_cargo.exe

第一次运行cargo build会在顶层目录生成 cargo.lock 文件,该文件负责追踪项目以来的确切版本,不需要手动去修改该文件

3.3.2. 编译并执行代码

我们还可以在编译代码后直接执行程序,使用如下命令

cargo run 

实际上,执行 cargo run 命令后,cargo 先编译程序生成可执行文件,再执行程序,如果之前编程成功过,并且源代码没有修改的情况下,那么就会直接运行二进制可执行文件。

3.3.3. 检查代码

使用以下命令可以检查代码,确保编译通过,但不会产生任何可执行文件

cargo check

实际上,cargo check要比cargo build执行快的多,编写代码的时候开发者可以连续反复的使用cargo check检查代码,确保自己的代码写的没有问题,最后需要执行的时候再使用 cargo build 生成二进制可执行文件,提高开发效率。

3.3.4. 构建发行版程序

实际上,在上面执行 cargo build 命令生成了一个用于开发调试使用的二进制可执行文件,当我们真正需要发版的时候,需要 加上 --release 参数进行编译,如下命令

cargo build --release

加上 --release 参数后,编译时代码会进行优化,编译的时候变长,但生成的二进制可执行文件执行效率也更高。生成的二进制可执行文件将保存在 target/release 目录中,而不是 target/debug 目录中。

最后得出以下结论:

  • 在项目开发中,代码编译时使用 cargo build 命令

  • 在项目发布时,代码编译使用 cargo build --release 命令