Rust初接触

一、什么是Rust

Rust 是由 Mozilla 开发的多范式编程语言,专注于性能和安全性。

Rust 以其先进的安全并发能力而闻名, 它的语法类似于 C++,但它提供了更快的速度和内存安全性,但不使用垃圾收集器。

Rust 最初是为 Mozilla Firefox 浏览器开发的,但它的效率和优势吸引了许多开发人员开始使用 Rust,通常用于游戏开发。

Rust 在内存管理方面是创新的。例如,它不允许空指针或悬空指针。由于其功能性,Rust 常用于构建设备驱动程序、嵌入式系统、游戏和操作系统,例如 BlogOS、Redox、RustOS、Rux 和 Tock。

Rust 代码可以说以其速度和在测试前调试代码的能力而闻名。例如,Rust 可以开发在运行时检查代码错误的程序。

Rust 的特点

复制代码
- 内存管理
- 内存安全
- 所有权制度
- 多态性
- 速度和性能

二、环境安装

1.windows

下载安装程序: https://static.rust-lang.org/rustup/dist/x86_64-pc-windows-msvc/rustup-init.exe

会得到一个rustup_init.exe,运行出现这个界面:

三个选项的意思分别是 1.默认参数安装 2.自定义安装 3.取消

*如果当前机器上已经安装了 MSVC (推荐),那么直接输入 1 并回车即可(默认装在C盘),直接进入第二步。如果机器上安装的是 MinGW,那么需要输入 2 (自定义安装),然后会提示 Default host triple ? ,将 default host triple 的 "msvc" 改为 "gnu" 再输入安装程序:

*

默认安装如果报错如:

解决方法就是科学上网

最后安装结果:

然后查看版本测试一下安装是否正常:

2.linux

直接运行:

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

也需要选择安装信息,我是直接默认了:

最后安装成功:

这里比windows多一步是重新加载环境变量,最后测试一下:

3.others

上面两个系统上安装实际上都是使用rustup来完成,如果你不想使用这种方法,例如无法科学上网在下载时总是失败,那么可以试试:

https://forge.rust-lang.org/infra/other-installation-methods.html

三、VSCODE 配置

rust没有官方的编辑器,但它被很多编辑器支持,甚至不用编辑器只使用命令行也可以,我习惯用VSCODE。

安装这两个插件:

配置就结束了。。。。。

然后测试一下,新建一个hello.rs文件,里面写:

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

然后命令行里用 rustc 编译生成exe,运行即可:

四、cargo

1.cargo

Rust 自带一个名为 Cargo 的构建系统和包管理器。大多数 Rustacean 们使用 Cargo 来管理 Rust 项目,它可以处理很多任务,比如构建代码、下载依赖库并编译这些库。

在编写复杂的 Rust 程序时,几乎都需要用到依赖项,如果使用 Cargo 启动项目,添加依赖项将极其容易。

如果使用 rustup 安装的 rust 编译器的话,则会自带 Cargo,如果通过其他方式安装的话,还需要再手动安装一下。可以在终端输入如下命令检查是否安装了 Cargo:

复制代码
$ cargo --version

如果看到了如下,则说明已安装!如果看到类似 command not found 的错误,就要去查看相应安装文档以确定如何单独安装 Cargo。

2.使用

找一个文件夹,命令行里输入:

复制代码
cargo new hello_cargo

结果:

可以看到生成了一个 hello_cargo 文件夹,这也是我创建时指定的工程名称。

然后这个工程中有一个 src/main.rs ,这里面只有一个main函数,函数中输出了一句 hello world。

然后有一个.gitingore 文件,这是因为 cargo 会在创建目录时初始化一个 git 仓库。如果在一个已经存在的 git 仓库中运行 cargo new,则这些 git 相关文件则不会生成;可以通过运行 cargo new --vcs=git 来覆盖这个行为(cargo new 可以切换到其它版本控制系统)。

接下来是一个 carho.lock 文件,这个文件用来记录项目依赖的实际版本,正常来说,开发者不要改动这个文件,完全由 cargo 去控制这个文件的内容。

最后是一个 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]
  • package\],是一个片段(section)标题,表明下面的语句用来配置一个包。随着在这个文件增加更多的信息,还可以增加其他片段(section)。

  • dependencies\],是其它依赖的片段的开始。在 Rust 中,代码包被称为 crates。这个项目并不需要其他的 crate,等项目用到依赖时就会用这个片段了。

看到编译成功,并且生成了一个 target 文件夹,这里面生成了一个 hello_cargo.exe 。

cargo 默认是编译的 debug 版本,因此生成的是 target/debug , 如果想要生成release ,需要使用

复制代码
cargo build --release 

最后,cargo 还有两个命令:

复制代码
cargo run
cargo check

cargo run 会在一个命令中同时编译并运行生成的可执行文件;

cargo check 会快速检查代码确保其可以编译,但并不产生可执行文件;

cargo 使用起来很简单,了解这些就可以上手了,剩余的有一些细节和优化就要去官方文档找了: https://doc.rust-lang.org/cargo/

相关推荐
探索java2 分钟前
Netty Channel详解:从原理到实践
java·后端·netty
追逐时光者12 分钟前
2025 年全面的 C#/.NET/.NET Core 学习路线集合,学习不迷路!
后端·.net
科大饭桶14 分钟前
C++入门自学Day14-- Stack和Queue的自实现(适配器)
c语言·开发语言·数据结构·c++·容器
扛麻袋的少年1 小时前
7.Kotlin的日期类
开发语言·微信·kotlin
ankleless1 小时前
Spring Boot 实战:从项目搭建到部署优化
java·spring boot·后端
钢铁男儿2 小时前
Python 正则表达式实战:解析系统登录与进程信息
开发语言·python·正则表达式
百锦再2 小时前
一文精通 Swagger 在 .NET 中的全方位配置与应用
后端·ui·.net·接口·配置·swagger·访问
用户4822137167752 小时前
C++——静态数组、动态数组
后端
野生技术架构师2 小时前
2025年中高级后端开发Java岗八股文最新开源
java·开发语言
用户4822137167752 小时前
C++—— String 类详解
后端