Rust语言学习(一)Hello World
Rust 是一门系统级编程语言,以其 性能、内存安全 和 并发安全 而闻名。它被设计为可以编写高性能、可靠的软件,同时又不牺牲开发者的生产力。
Rust 的主要特点:
- 内存安全: Rust 拥有一个强大的类型系统和所有权模型,能够在编译时捕获许多常见的编程错误,如空指针引用、悬垂指针和数据竞争。
- 性能: Rust 代码的运行速度可以与 C++ 相媲美,甚至在某些情况下还能超越。
- 并发安全: Rust 的并发模型使得编写可靠的并发程序变得更加容易。
- 零成本抽象: Rust 提供了丰富的抽象机制,但这些抽象并不会带来额外的运行时开销。
- 工具链强大: Rust 拥有一个活跃的社区和完善的工具链,包括包管理器、构建工具、集成开发环境等。
为什么选择 Rust?
- 系统编程: Rust 非常适合编写操作系统、嵌入式系统、网络服务器、游戏引擎等对性能和可靠性要求极高的软件。
- Web 开发: Rust 可以用于构建高性能的 Web 应用程序的后端,例如使用 Rocket、Actix 等框架。
- 数据科学: Rust 在数据科学领域也逐渐受到关注,因为它可以提供比 Python 更高的性能。
- 区块链: Rust 的安全性、并发性和性能使其成为区块链开发的理想选择。
Rust 的学习曲线
Rust 的学习曲线相对陡峭,尤其是对于习惯了垃圾回收机制的开发者来说。但是,Rust 的社区非常友好,提供了大量的学习资源,包括官方文档、教程、书籍和在线课程。
Rust 的安装
要做 Rust 编程开发,安装 Rust 编译器套件是第一步。如果是在 MacOS 或 Linux 下,只需要执行:
1 | curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh |
而如果你使用的是 Windows 系统,那么你既可以在 WSL 中开发编译 Rust 代码,也可以在 Windows 原生平台上开发 Rust 代码。如果你计划在 WSL 中开发,安装方式与上面一致。
1 | curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh |
如果你想在 Windows 原生平台上开发,首先需要确定安装 32 位的版本还是 64 位的版本。在安装过程中,它会询问你是想安装 GNU 工具链的版本还是 MSVC 工具链的版本。安装 GNU 工具链版本的话,不需要额外安装其他软件包。而安装 MSVC 工具链的话,需要先安装微软的 Visual Studio 依赖。
Rust 官网下载地址:https://www.rust-lang.org/tools/install
如果你不想在电脑上安装或者不方便安装,也可以使用在线的 Rust 编译器,比如 Rust Playground。这个在线编译器允许你在线编写和运行 Rust 代码,但是它不能让你在本地编译和运行 Rust 代码。
Rust 编译器套件安装好之后,会提供一些工具,接下来简单介绍几个比较重要的:
- cargo 是 Rust 的包管理器,构建工具和依赖解决工具。可以用 cargo 命令创建、编辑和构建 Rust 项目。例如:cargo new --bin my_project # 创建一个名为 my_project 的新项目
- rustup 用来升级维护 Rust 编译器套件的版本,同时支持维护多个版本,并可以用来安装 Rust 组件。例如:rustup update stable # 更新 Rust 编译器套件到最新稳定版本
- rust-fmt 用来格式化 Rust 代码。例如:配合cargo,在工程目录下运行 cargo fmt 就可以对整个工程进行代码格式化
- rust-clippy 用来检查 Rust 代码中的潜在问题。例如:配合cargo,在工程目录下运行 cargo clippy 就可以对整个工程进行代码检查
IDE
开发 Rust 程序推荐使用 vscode,安装好 vscode 后再安装 rust-analyzer 插件就可以了。
创建项目 Hello World!
打开 vscode,新建一个文件夹,然后打开命令行,输入:
1 | cargo new --bin helloworld |
终端显示:
1 | Created binary (application) `helloworld` package |
打开工程目录,可以看到多了一个 helloworld 文件夹。
里面第一层是一个 src 目录和一个 Cargo.toml 配置文件。src 是放置源代码的地方,而 Cargo.toml 是这个工程的配置文件,我们来看一下里面的内容。
1 | [package] |
Cargo.toml 中包含 package 等基本信息,里面有名字、版本和采用的 Rust 版次
接下来看看 src 下的 main.rs 里面的代码:
1 | fn main() { |
这段代码的意思是,我们要在终端输出这个 “Hello, world!” 的字符串。使用 cargo build 来编译。
1 | $ cargo build |
使用 cargo run 命令可以直接运行程序。
1 | $ cargo run |
终端打印出了 Hello, world。我们成功地执行了第一个 Rust 程序。