Rust 入门指南(零):安装及 Cargo 管理器

Rust 是种现代系统级编程语言,以其安全性和高效性著称。它被广泛应用于构建可靠且高性能的软件。

由于项目开发遇到 Rust 相关的项目,本篇开坑 Rust 教程,佛系更新~

Rust 优点

Rust 的技术优势主要体现在以下几个方面:

  • 内存安全:Rust 的内存管理是通过编译时的借用检查实现的,这使得内存管理变得更加安全。
  • 无垃圾回收:Rust 不依赖垃圾回收机制,这使得其性能可以和 C/C++ 比肩。
  • 高并发:Rust 的所有权系统和借用检查器使得并发代码既安全又高效。

Rust 已经在众多领域展现了其优越性,包括系统编程、WebAssembly、网络服务等。

安装及配置

在 Unix 类系统中,安装 Rust 十分简单:

bash 复制代码
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

配置环境变量:

bash 复制代码
export PATH=$PATH:$HOME/.cargo/bin

安装完成后,通过以下命令验证安装:

bash 复制代码
rustc --version

rustup 是 Rust 的 toolchain 管理器,用于安装和更新 Rust 版本及组件。

更新工具链:

bash 复制代码
rustup update

查看本地文档:

bash 复制代码
rustup doc

同时,建议安装 VSCode 的 Rust 扩展,以提升开发效率。

基础示例

接下来,我们编写一个简单的 Rust 程序。创建文件 hello.rs,并输入以下代码:

rust 复制代码
fn main() {
    println!("Hello, world!");
}

编译和运行:

bash 复制代码
rustc hello.rs
./hello

代码解析:

  • fn:用来声明函数。
  • main 函数是所有 Rust 可执行程序的入口。
  • println!:这是一个宏,用于输出信息,! 表示这是一个宏调用。

Rust 是一门提前编译(AOT)的语言,意味着代码在执行前必须编译。编译后可以独立于 Rust 环境运行。

使用 Cargo

大多数 Rust 项目使用 Cargo 进行管理,这是 Rust 的构建系统和包管理器。通过以下命令验证安装:

bash 复制代码
cargo --version

创建新项目

我们使用 Cargo 创建一个新项目:

bash 复制代码
cargo new hello_cargo
cd hello_cargo

生成的项目结构包括一个 Git 仓库:

复制代码
hello_cargo
├── Cargo.toml
└── src
    └── main.rs

Cargo.toml 是项目的配置文件,而 src/main.rs 是主程序文件,代码如下:

rust 复制代码
fn main() {
    println!("Hello, world!");
}

Cargo.toml 定义项目的基本信息和依赖:

toml 复制代码
[package]
name = "hello_cargo"
version = "0.1.0"
edition = "2021"

[dependencies]

构建和运行

构建项目:

bash 复制代码
cargo build

此命令会在 target/debug/ 下生成可执行文件。

要直接编译并运行程序:

bash 复制代码
cargo run

这将编译并立即运行程序,如果已经编译成功,则会跳过编译直接运行。

使用 cargo check 可以快速检查代码是否可以成功编译,而不生成二进制文件:

bash 复制代码
cargo check

发布构建

当准备发布项目时,可以使用优化编译:

bash 复制代码
cargo build --release

此命令将在 target/release/ 下生成优化后的可执行文件。

总结

以上,系列第 0 篇,简单介绍了 Rust 的基本安装和配置流程,以及如何通过 Cargo 创建和管理项目。

相关推荐
杜大哥22 分钟前
python程序:如何查看电脑【电池电量的剩余百分比】 和 【是否插入连接着充电器】?
开发语言·python
wuyk55522 分钟前
Python网络爬虫入门到实战 第01章:爬虫到底是什么?原理、流程、合法性、风险全解析(零基础必看)
开发语言·爬虫·python
yurenpai(27届找实习中)30 分钟前
Java 10 的 var 为什么不能随便用?从订单汇总看懂类型推断与泛型陷阱
java·开发语言·java18
shmily麻瓜小菜鸡1 小时前
JS/TS 易踩坑知识点 — 模块化与工程化类
开发语言·javascript·ecmascript
geovindu1 小时前
CSharp: Observer Pattern
开发语言·后端·观察者模式·设计模式·c#·.netcore·行为模式
郝学胜-神的一滴2 小时前
C++11 工程级应用 09:告别无谓拷贝,解锁高性能移动语义
开发语言·数据结构·c++·vscode·软件工程·visual studio
MC皮蛋侠客3 小时前
OPC UA 系列(一):标准全景与 Python 最小闭环——让第一条设备数据流动起来
开发语言·python·opcua
SamChan903 小时前
PDF翻译后的格式完整性校验:用Python自动比对译文与原文档的表格与段落结构
开发语言·python·ai·pdf·机器翻译
君顾13 小时前
外卖CPS系统开发实战指南:从架构设计到部署全流程解析
java·开发语言·外卖