Rust笔记 (一) 搭建开发环境

Rust 是一门强调安全、并发、高效的系统编程语言。无 GC 实现内存安全机制、无数据竞争的并发机制、无运行时开销的抽象机制,是 Rust 独特的优越特性。 它声称解决了传统 C 语言和 C++语言几十年来饱受责难的内存安全问题,同时还保持了很高的运行效率、很深的底层控制、很广的应用范围, 在系统编程领域具有强劲的竞争力和广阔的应用前景。

1. Rust 环境安装

Rust 安装起来非常方便,你可以用 rustup.rs中给出的方法,根据你的操作系统进行安装。比如在 UNIX 系统下,可以直接运行:

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

这会在你的系统上安装 Rust 工具链,之后,你就可以在本地用 cargo new 新建 Rust 项目、尝试 Rust 功能。

cargo 是 rust 官方推荐使用的项目管理软件。功能大概类似于 java 里面的 maven 和 ant。负责管理依赖项和编译。 安装 rust 时,默认安装(可以自定义为不安装)。它也类似 Node.js 的 npm、Golang 的 go,用来做依赖管理以及开发过程中的任务管理,比如编译、运行、测试、代码格式化等等。

css 复制代码
rustc --version
cargo --version

如果是 windows ,假如出现 "'rustc'不是内部或外部命令,也不是可运行的程序或批处理文件" 请在"环境变量"的 Path 中增加 rust 的 bin 目录。

2. 开发工具

你可以使用任何编辑器来撰写 Rust 代码,我个人比较喜欢 VS Code,功能强大且速度很快。在 VS Code 下我为 Rust 安装了一些插件,下面是我的安装顺序,你可以参考:

rust-analyzer:它会实时编译和分析你的 Rust 代码,提示代码中的错误,并对类型进行标注。你也可以使用官方的 Rust 插件取代。 rust syntax:为代码提供语法高亮。 crates:帮助你分析当前项目的依赖是否是最新的版本。 Crates 提供了一系列强大的功能来简化您的 Rust 开发工作流程:版本信息 :Crates 提供全面的版本信息,让您随时了解项目中的 crate。其中包括包含详细版本详细信息的工具提示和内嵌视觉反馈,以供快速参考和决策。快捷命令 :只需一个命令即可更新所有依赖项,以实现无缝工作流程。Crev 集成:通过与 Crev集成来访问有价值的代码审查和社区协作。获取反馈并就您所依赖的板条箱做出明智的决定。Doc.rs 集成:通过 Doc.rs的无缝集成,探索 Rust 的全面文档,包括包、库等。获得深入的知识和见解以增强您的编码体验。

even better toml:Rust 使用 toml 做项目的配置管理。better toml 可以帮你语法高亮,并展示 toml 文件中的错误。 rust test lens:可以帮你快速运行某个 Rust 测试。 Tabnine:基于 AI 的自动补全,可以帮助你更快地撰写代码。

3. 生成一个新的 Rust 项目

开发工具准备好之后,我们用 cargo new my-rust 生成一个新项目。默认情况下,这条命令会生成一个可执行项目 my-rust,入口在 src/main.rs。Cargo.toml 是 Rust 项目的配置管理文件,它符合 toml 的语法。

最后运行一下我们的 rust 项目。

arduino 复制代码
cargo run

这样一来我们的 rust 开发环境就搭建好了。

4. 写第一个 Rust 程序

4.1 一个小爬虫

通过 rust 抓取掘金首页。

rust 复制代码
use std::fs;

fn main() {
    let url = "https://juejin.cn/";
    let output = "rust.md";

    println!("Fetching url: {}", url);
    let body = reqwest::blocking::get(url).unwrap().text().unwrap();

    println!("Converting html to markdown...");
    let md = html2md::parse_html(&body);

    fs::write(output, md.as_bytes()).unwrap();
    println!("Converted markdown hash been saved in {}", output);
}

Bingo!我们第一个 Rust 程序运行成功!

相关推荐
加班是不可能的,除非双倍日工资1 小时前
css预编译器实现星空背景图
前端·css·vue3
wyiyiyi2 小时前
【Web后端】Django、flask及其场景——以构建系统原型为例
前端·数据库·后端·python·django·flask
gnip2 小时前
vite和webpack打包结构控制
前端·javascript
excel2 小时前
在二维 Canvas 中模拟三角形绕 X、Y 轴旋转
前端
阿华的代码王国3 小时前
【Android】RecyclerView复用CheckBox的异常状态
android·xml·java·前端·后端
一条上岸小咸鱼3 小时前
Kotlin 基本数据类型(三):Booleans、Characters
android·前端·kotlin
Jimmy3 小时前
AI 代理是什么,其有助于我们实现更智能编程
前端·后端·ai编程
ZXT3 小时前
promise & async await总结
前端
Jerry说前后端3 小时前
RecyclerView 性能优化:从原理到实践的深度优化方案
android·前端·性能优化
画个太阳作晴天3 小时前
A12预装app
linux·服务器·前端