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 程序运行成功!

相关推荐
Myli_ing15 分钟前
HTML的自动定义倒计时,这个配色存一下
前端·javascript·html
dr李四维32 分钟前
iOS构建版本以及Hbuilder打iOS的ipa包全流程
前端·笔记·ios·产品运营·产品经理·xcode
雯0609~1 小时前
网页F12:缓存的使用(设值、取值、删除)
前端·缓存
℘团子এ1 小时前
vue3中如何上传文件到腾讯云的桶(cosbrowser)
前端·javascript·腾讯云
学习前端的小z1 小时前
【前端】深入理解 JavaScript 逻辑运算符的优先级与短路求值机制
开发语言·前端·javascript
彭世瑜1 小时前
ts: TypeScript跳过检查/忽略类型检查
前端·javascript·typescript
FØund4041 小时前
antd form.setFieldsValue问题总结
前端·react.js·typescript·html
Backstroke fish1 小时前
Token刷新机制
前端·javascript·vue.js·typescript·vue
小五Five1 小时前
TypeScript项目中Axios的封装
开发语言·前端·javascript
小曲程序1 小时前
vue3 封装request请求
java·前端·typescript·vue