首页 星云 工具 资源 星选 资讯 热门工具
:

PDF转图片 完全免费 小红书视频下载 无水印 抖音视频下载 无水印 数字星空

初探 Rust 语言与环境搭建

编程知识
2024年08月19日 09:14

1. Rust 简介

Rust 的历史

  • 起源:Rust 语言最初由 Mozilla 研究员 Graydon Hoare 于 2006 年开始设计,并于 2009 年首次公开。
  • 开发:Rust 是 Mozilla 实验室的一个项目,目的是创建一种能够保证内存安全同时又不牺牲性能的系统编程语言。
  • 发布:Rust 1.0 稳定版于 2015 年发布,标志着语言的成熟和稳定。

设计目标

  • 内存安全:Rust 的设计核心是提供内存安全,通过所有权(ownership)、借用(borrowing)和生命周期(lifetimes)的概念来避免空指针解引用和数据竞争等问题。
  • 并发编程:Rust 旨在简化并发编程,通过所有权和类型系统来帮助开发者编写无数据竞争的多线程代码。
  • 性能:Rust 旨在提供与 C/C++ 相当的性能,没有运行时垃圾收集器,编译为机器码,适合系统编程和性能敏感型应用。
  • 表达性:Rust 提供了丰富的类型系统和模式匹配,使得代码既安全又具有表现力。

Rust 与 C/C++ 的比较

  • 内存安全:与 C/C++ 相比,Rust 通过所有权和借用规则在编译时避免了内存泄漏和野指针问题,而 C/C++ 需要开发者手动管理内存。
  • 并发性:Rust 的所有权模型天然支持无数据竞争的并发,而 C++11 引入了线程库来支持并发编程,但依然需要开发者小心处理数据同步问题。
  • 语法:Rust 的语法类似于 C++,但更简洁,且提供了模式匹配等特性,使得代码更易于编写和理解。
  • 错误处理:Rust 使用 Result 类型来显式处理可能的错误,而 C++ 使用异常处理。
  • 编译器友好:Rust 的编译器提供详尽的错误信息和有用的提示,帮助开发者快速定位和解决问题。

Rust 的应用领域

  • 系统编程:由于其性能和内存安全特性,Rust 适合用于操作系统、文件系统、设备驱动等底层系统开发。
  • WebAssembly:Rust 可以编译为 WebAssembly,用于开发 Web 应用的高性能前端逻辑。
  • 嵌入式编程:Rust 的资源管理特性使其适合用于嵌入式设备编程。
  • 工具开发:Rust 用于开发命令行工具,如 cargo(Rust 的包管理器和构建工具)。

Rust 的生态系统

  • Cargo:Rust 的包管理器和构建工具,用于依赖管理和项目构建。
  • crates.io:Rust 的包注册表,类似于 npm 或 Maven,用于共享和重用代码。
  • 社区:Rust 拥有一个活跃的社区,提供大量的库和框架,以及持续的技术支持。

学习资源

  • The Rust Programming Language(又称 "The Book"):Rust 官方教程,适合初学者。
  • Rust by Example:通过实例学习 Rust,覆盖了 Rust 的大部分特性。
  • Rustlings:一个练习项目,通过小练习帮助学习 Rust。

Rust 作为一种现代系统编程语言,以其内存安全、并发性和性能优势,正在获得越来越多的关注和应用。随着 Rust 生态的不断发展,我们可以预见它将在未来的软件开发中扮演更重要的角色。

2. 环境搭建

搭建 Rust 编程环境主要包括安装 Rust 编译器和一些辅助工具。以下步骤将引导你完成环境搭建:

步骤 1: 安装 Rust 编译器

Rust 编译器可以通过 Rustup 安装,Rustup 是 Rust 的官方安装程序和版本管理器。

  1. 访问 Rustup 官网:打开 rustup.rs
  2. 遵循安装指南:根据你的操作系统(Windows、macOS、Linux),网页会提供相应的安装指令。
  3. 自动安装脚本:对于大多数用户,只需复制网页上提供的命令并在终端或命令提示符中运行即可。例如,在 Linux 或 macOS 上,你可以使用以下命令:
   curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

在终端执行以上命令后的效果:

到这个界面,回车继续安装和配置环境变量。

看到这个界面,安装就完成了。

stable-x86_64-apple-darwin installed - rustc 1.80.1 表示安装成功,版本号为1.80.1。

对于 Windows 用户,下载并运行提供的 rustup-init.exe 安装程序。

步骤 2: 检查安装

安装完成后,你可以通过在终端运行以下命令来检查 Rust 编译器是否正确安装(V哥提醒:一定要重启一下终端):

rustc --version

这将显示安装的 Rust 编译器版本。

步骤 3: 安装 Cargo

Cargo 不仅是 Rust 的包管理器,还是构建工具。它与 Rust 编译器一起安装,所以你不需要单独安装。

  1. 检查 Cargo 安装:运行以下命令来检查 Cargo 是否已安装:
   cargo --version

步骤 4: 更新 Rust

Rust 和 Cargo 会定期更新。使用以下命令来更新到最新版本:

rustup update

步骤 5: 配置环境变量(如果需要)

在某些系统中,可能需要将 Rust 编译器和 Cargo 添加到 PATH 环境变量中。通常,Rustup 会自动处理这一步,但如果没有,你可以手动添加。

  1. 找到 Rustup 安装目录:Rustup 通常安装在以下路径:
    • Windows:C:\Users\你的用户名\.cargo\bin
    • macOS 和 Linux:~/.cargo/bin
  2. 添加到 PATH:根据你的操作系统,将上述路径添加到 PATH 环境变量中。

步骤 6: 创建第一个项目

使用 Cargo 创建一个新项目来测试你的环境。

  1. 打开终端或命令提示符
  2. 运行以下命令
   cargo new myproject

这将在当前目录下创建一个名为 myproject 的新文件夹,包含一个新的 Rust 项目模板。

步骤 7: 构建和运行项目

  1. 进入项目目录
   cd myproject
  1. 构建项目
   cargo build

这将编译你的项目,生成的可执行文件在 target/debug/ 目录下。

  1. 运行项目
   cargo run

运行成功。

步骤 8: 探索项目结构

新创建的 Rust 项目包含以下文件和目录:

  • Cargo.toml:项目的配置文件,包含元数据和依赖信息。
  • src:源代码目录,包含 main.rs — 项目的入口点。

按照这些步骤,你将拥有一个基本的 Rust 开发环境,可以开始编写和运行 Rust 程序。如果你在安装过程中遇到任何问题,可以联系 V 哥一对一帮你解决。

From:https://www.cnblogs.com/wgjava/p/18366810
本文地址: http://www.shuzixingkong.net/article/1227
0评论
提交 加载更多评论
其他文章 解锁强强组合: 使用 Kafka + ClickHouse 快速搭建流数据实时处理平台(DoubleCloud 博客)
我们想要解决的问题 让我们深入一个现实场景: 设想你负责汇总多个销售点系统产生的大量数据。这些数据需要被实时处理并在高级分析仪表板上展示,以提供全面的洞察。 在数据处理领域,速度至关重要。ClickHouse 作为速度之王, 它从不减速且异常迅速。其在并发处理方面的高效性以及成本效益使其成为构建快速
解锁强强组合: 使用 Kafka + ClickHouse 快速搭建流数据实时处理平台(DoubleCloud 博客) 解锁强强组合: 使用 Kafka + ClickHouse 快速搭建流数据实时处理平台(DoubleCloud 博客) 解锁强强组合: 使用 Kafka + ClickHouse 快速搭建流数据实时处理平台(DoubleCloud 博客)
RealNet:从数据生成到模型训练的最新工业异常检测 | CVPR 2024
论文提出了一种创新的自监督异常检测框架RealNet,集成了三个核心组件:可控制强度的扩散异常合成(SDAS)、异常感知特征选择(AFS)和重构残差选择(RRS)。这些组件通过协同作用,使RealNet能够有效地利用大规模预训练模型来进行异常检测,同时保持计算开销在合理的低范围内。RealNet为未
RealNet:从数据生成到模型训练的最新工业异常检测 | CVPR 2024 RealNet:从数据生成到模型训练的最新工业异常检测 | CVPR 2024 RealNet:从数据生成到模型训练的最新工业异常检测 | CVPR 2024
不是 PHP 不行了,而是 MySQL 数据库扛不住啊
大多数的业务场景下 PHP 还没有达到性能瓶颈,然而 MySQL 数据库就先行驾崩了。但我们总是不分青红皂白,一股脑的把原因归结于是 PHP 语言不行了,每当遇到这种情形我就会感叹到 PHP 的命真苦啊。
不是 PHP 不行了,而是 MySQL 数据库扛不住啊 不是 PHP 不行了,而是 MySQL 数据库扛不住啊 不是 PHP 不行了,而是 MySQL 数据库扛不住啊
小白系列:数据库基础知识解析
尽管我们在本文中只触及了数据库的基础部分,实际应用中可能会遇到更复杂的业务逻辑和需求。这些复杂的场景通常需要深入了解更多高级特性和技巧。虽然这些内容超出了本文的范围,但掌握基本操作是迈向高级技能的第一步。希望通过这篇文章,你能够对数据库有一个清晰的认识,并在实际工作中熟练运用这些基本操作。未来,随着
小白系列:数据库基础知识解析 小白系列:数据库基础知识解析 小白系列:数据库基础知识解析
.NET+WPF 桌面快速启动工具 GeekDesk
前言 大家在平时工作中,是不是经常为了找某个文件或者应用而在电脑桌面上来回翻找?桌面图标乱七八糟,每次找东西都像在大海捞针一样。 今天给大家介绍一个开源项目 GeekDesk,它能够让桌面焕然一新,工作效率翻倍!GeekDesk 是一个小巧、美观的桌面快速启动工具,它集成了强大的搜索功能,让我们能够
.NET+WPF 桌面快速启动工具 GeekDesk .NET+WPF 桌面快速启动工具 GeekDesk .NET+WPF 桌面快速启动工具 GeekDesk
《软件性能测试分析与调优实践之路》(第2版) 读书笔记(二)总体介绍(下)-真正从性能分析与调优来看性能测试
《软件性能测试分析与调优实践之路》(第2版) 是清华大学出版社出版的一本图书,作者为张永清,全书共分为9章,如下图所示 图书介绍:《软件性能测试分析与调优实践之路》(第2版) 本文是接着 《软件性能测试分析与调优实践之路》(第2版) 读书笔记(一)总体介绍(上)-真正从性能分析与调优来看性能测试 继
《软件性能测试分析与调优实践之路》(第2版) 读书笔记(二)总体介绍(下)-真正从性能分析与调优来看性能测试 《软件性能测试分析与调优实践之路》(第2版) 读书笔记(二)总体介绍(下)-真正从性能分析与调优来看性能测试 《软件性能测试分析与调优实践之路》(第2版) 读书笔记(二)总体介绍(下)-真正从性能分析与调优来看性能测试
才来鱼厂实习 1 个月,就转正了!
大家好,我是程序员鱼皮。昨天,我给才来我们公司 实习一个月 的前端开发同学转正了,直接发了正式 Offer!这个转正速度,放眼到所有公司中,我相信也是炸裂的。 看小伙子那么激动,让我回想到了 19 年的夏天我成功拿到腾讯转正 Offer 的喜悦。时光飞逝啊,没想到现在我已经给别人发放转正 Offer
才来鱼厂实习 1 个月,就转正了! 才来鱼厂实习 1 个月,就转正了! 才来鱼厂实习 1 个月,就转正了!
k8s实践——命名空间隔离+request-key机制解决CSI内核态域名解析
0x01 背景 Pod需要使用远程存储的PV,由同k8s集群内的服务提供的存储服务。一开始的做法是: CSI中解析Service的clusterIP。 然后使用clusterIP挂载PV卷。 但因为走clusterIP时,经过多次转换: clusterIP到Pod IP 经过了1次NAT Pod I