【ChatGPT辅助学Rust | 基础系列 | Rust初相识】Rust简介与环境配置

news2024/9/22 13:29:50

在这里插入图片描述

教程目录

  • 前言
  • 一,Rust简介
    • 1,Rust的历史
    • 2,Rust的特性
    • 3,为什么选择Rust
    • 4,Rust可以做什么
  • 二, Rust环境配置
    • 1,windows11安装
    • 2,Linux安装
  • 三,安装IDE

前言

Rust是一种系统编程语言,专注于速度、内存安全和并行性。它的设计目标是提供一种能够实现高性能系统的语言,同时保证内存安全和线程安全。

本篇教程的目标是通过融合理论与实践,帮助读者更快速、更有效地学习 Rust,并解决在学习过程中可能遇到的挑战。这些内容也是我个人学习过程中的笔记记录,希望正在学习和准备学习 Rust 的朋友们可以一起学习探讨。本文的主要目标是阐述学习 Rust 的重要性,以及如何建立 Rust 的开发环境。


一,Rust简介

1,Rust的历史

Rust的开发始于2006年,由Mozilla研究院的Graydon Hoare发起。2010年,Mozilla开始赞助这个项目,希望Rust能够成为开发Web浏览器和其他复杂软件的工具。经过多年的发展,Rust已经成为了一种成熟的编程语言,被广泛应用于各种系统级的开发工作。

2,Rust的特性

  1. 零成本抽象:Rust提供了高级语言的抽象,但不会因此带来运行时的性能损失。这得益于Rust的零成本抽象原则,即在不影响性能的前提下,提供尽可能多的抽象。

  2. 内存安全:Rust的一个核心特性就是内存安全,它通过一种称为所有权(ownership)的系统来管理内存。这个系统在编译时检查内存访问,确保没有空指针解引用、双重释放等问题,而不需要垃圾回收。

  3. 并发无恐:Rust通过一种称为借用检查(borrow checking)的机制来防止数据竞争。这使得在Rust中编写并发代码既安全又容易。

  4. C兼容:Rust提供了C语言的兼容性,可以无缝地与C语言库一起工作,也可以在嵌入式系统和操作系统内核等场景中使用。

3,为什么选择Rust

选择Rust的原因有很多,以下是其中的一些:

  1. 性能:Rust的性能与C和C++相当,但提供了更高级的抽象和更强的安全保证。

  2. 内存安全:Rust的所有权系统和借用检查机制可以在编译时消除许多常见的内存错误。

  3. 并发:Rust的并发模型使得编写高效的并发代码变得更加简单。

  4. 生态系统:Rust有一个活跃的社区和一个快速增长的生态系统,有许多高质量的库可以使用。

  5. 工具链:Rust的工具链,包括包管理器Cargo和文档工具rustdoc,都是一流的。

4,Rust可以做什么

Rust作为一种系统级的编程语言,具有许多强大的特性,使其可以被用于许多不同的应用领域。以下是其中的一些:

  1. 系统编程:Rust提供了低级别的性能控制和高级别的抽象,使其成为系统编程的理想选择。可以使用Rust编写操作系统,文件系统,浏览器引擎等。

  2. Web 开发:Rust有一些高性能的Web框架,如Rocket和Actix,可以用来开发Web应用。并且,Rust可以编译成WebAssembly,这使得它可以在Web浏览器中运行,提供了比JavaScript更高的性能。

  3. 游戏开发:Rust的性能和内存安全性使其成为游戏开发的一个好选择。Rust的游戏开发生态系统正在快速增长,有许多库和框架可供开发者使用。

  4. 嵌入式系统:Rust的零成本抽象和C的兼容性使其成为嵌入式系统的一个优秀选择。Rust的内存安全性也有助于降低嵌入式系统的错误率。

  5. 并行和并发编程:Rust的所有权和借用机制可以防止数据竞争,使得在Rust中编写并行和并发代码变得简单且安全。

  6. 网络编程:Rust的性能和内存安全性使其成为编写网络应用,如HTTP服务器,数据库等的好选择。在此领域,有许多优秀的Rust库和框架可供使用。

  7. 跨平台开发:Rust支持多种平台,包括Windows, macOS, Linux, Android, iOS等,可以编写跨平台的应用程序。

总的来说,Rust是一种通用的编程语言,可以被应用在许多不同的领域,无论是底层的系统编程,还是高级的Web开发,Rust都是一个好的选择。

Rust是一种强大、安全、并发的系统编程语言,它的设计理念和丰富的特性使得它在系统编程领域有着广泛的应用前景。如果你对高性能、内存安全和并发编程感兴趣,那么Rust无疑是一个值得学习的选择。

Rust不仅限于低级系统编程。它的表现力和人体工程学足以让CLI应用程序、Web服务器和许多其他类型的代码编写起来非常愉快,使用Rust可以让你建立从一个领域转移到另一个领域的技能,你可以通过编写一个Web应用程序来学习Rust,然后将这些相同的技能应用于树莓派(Raspberry Pi,属于嵌入式方面)开发。

今年一直在被AI改变着各种事情,希望Rust的通用性能成为AI时代的通用语言。


二, Rust环境配置

1,windows11安装

官网下载链接,在官网选择合适的版本下载。
在这里插入图片描述


在终端执行下载的rustup-init.exe文件,如果没有提前安装Microsoft C++ 生成工具,会弹出如下界面,先安装Microsoft 工具,Select option选择1即可
在这里插入图片描述


默认会弹出Visual Studio界面。默认安装即可。
在这里插入图片描述
安装完成后,再次运行rustup-init.exe文件,如果弹出如下界面,说明Microsoft 工具安装成功,接下来可进行Rust的安装。
在这里插入图片描述
等待安装完成,在终端查看版本号,正常显示则安装成功
在这里插入图片描述

2,Linux安装

linux安装比windows安装方便很多,只需要一条命令,我这里使用的国产系统deepin,在终端输入以下命令

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

在这里插入图片描述
安装完成后在终端打印版本号查看是否安装成功
在这里插入图片描述


三,安装IDE

在配置好Rust环境之后,需要安装合适的IDE,虽然Rust可以在任何文本编辑器中编写,但是一个好的IDE可以极大地提高编程效率。本教程均采用VS Code进行讲解。

VS Code下载地址,windows,linux均可下载。
在这里插入图片描述

VS Code是一个轻量级的编辑器,通过安装Rust插件,也可以成为一个强大的Rust开发工具。在VS Code的扩展市场中搜索Rust,并安装Rust 插件。
在这里插入图片描述


在安装和配置IDE后,需要创建一个新的Rust项目。在终端中,使用cargo,Rust的包管理器和构建工具,可以很容易地创建一个新项目。只需运行以下命令:

cargo new hello_world

这将会创建一个名为hello_world的新项目,其中包含了基本的目录结构和一个简单的"Hello, World!"程序。
在这里插入图片描述


以上就是Rust的简介和环境配置的基本步骤。在完成这些步骤后,就可以开始Rust的学习之旅了。下一章我们将介绍cargo的相关内容

有学习Rust的小伙伴,欢迎一起交流。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/818969.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

智慧水务配电能效系统的开发与功能介绍

随着城市化进程的步伐大大变快,城市建设与科学信息技术的融合程度也在不断提升,尤其是大数据信息技术的迅猛发展,为民生工程由信息化向智能化转型提供了条件。以城市的水务系统为例,依托大数据信息技术构建智慧水务系统是智慧城市…

从 DejaVu 改为 Noto,Ubuntu 23.10 发行版计划调整字体包

近日消息,代号为“Mantic Minotaur”的 Ubuntu 23.10 发行版计划调整字体包,从 DejaVu 修改为 Noto。 近日消息,代号为“Mantic Minotaur”的 Ubuntu 23.10 发行版计划调整字体包,从 DejaVu 修改为 Noto。 Ubuntu 开发团队表示为…

数字人第一剑,先斩“尹天仇”

第一波被数字人抢走饭碗的人类,不是带货主播,也不是虚拟偶像,而是好莱坞的群演们。 过去几个月,数千名好莱坞演员罢工,并出现在Netflix奈飞、华纳兄弟、Discovery、亚马逊、派拉蒙和NBC环球的办公大楼示威。 此次好莱坞…

哈工大计算机网络课程网络安全基本原理详解之:密钥分发中心与公钥认证中心

哈工大计算机网络课程网络安全基本原理详解之:密钥分发中心与公钥认证中心 在介绍密钥分发中心的概念前,先来回顾一下之前介绍的身份认证协议AP4.0:利用随机数R来避免“回放攻击”,并借助于对称加密算法来保证R的加密传输和解密&…

用python编写一个小程序,如何用python编写软件

大家好,给大家分享一下用python编写一个小程序,很多人还不知道这一点。下面详细解释一下。现在让我们来看看! 1、python可以写手机应用程序吗? 我想有人曲解意思了,人家说用python开发渣蔽一个手机app,不是…

“ARTS挑战:探索技术,分享思考“

文章目录 前言一、学习的内容二、遇到的困难及解决办法三、学习打卡成果展示四、学习技巧的总结五、未来学习打卡计划后记 关于 ARTS 的释义 ● Algorithm: 每周至少做一个 LeetCode 的算法题 ● Review: 阅读并点评至少一篇英文技术文章 ● Tips: 学习至少一个技术技巧 ● Sha…

大数据面试实际场景类问题怎么准备,实在遭不住了!

300万字!全网最全大数据学习面试社区等你来! 前几天我发了一个面试总结的文章,实际场景类问题在大数据领域面试的占比越来越多。大家面试开始「务实」,在实际场景问题中,顺便增加对框架原理性内容的考察,这…

Docker中gitlab以及gitlab-runner的安装与使用

1、本文主要讲述如何使用Docker安装gitlab以及gitlab-runner,并且会讲述gitlab-runner如何使用 2、gitlab部分不需要修改过多的配置即可使用,本文未讲述https配置,如有需求,可自行百度 3、Docker如何安装可以自行百度 一、Docker安…

react中的高阶组件理解与使用

一、什么是高阶组件? 其实就是一个函数,参数是一个组件,经过这个函数的处理返回一个功能增加的组件。 二、代码中如何使用 1,高级组件headerHoc 2,在普通组件header中引入高阶组件并导出高阶组件,参数是普…

linux备份与还原系统(类似window上ghost备份还原)

一、摘要 在linux上进行了几年的开发工作 (qt ros) 突然发现,现在有公司硬件、笔记本台式机一台占一个系统,导致硬件太浪费,又不能用虚拟机(有时候要链接硬件必须物理机)怎么办? 二…

Simple Set Problem

题意: 给你k个集合,每个集合里有ci个数,在每个集合里各挑一个数,求挑的k个数里的最大值减去最小值的值最小 思路: 可以将题意转换为,挑的所有数的集合一共有n种,求挑的数的最大值最小值的差最…

idealC-2020.1.4免费下载(附安装教程)

下载地址 [软件名称]: IntelliJ IDEA 2020 [软件大小]: 560MB [安装环境]: Windows [下载链接]: 链接: https://pan.baidu.com/s/1yGOWqfRVE6cPsAe0qHpnbg https://pan.baidu.com/s/1yGOWqfRVE6cPsAe0qHpnbg 提取码: zt88 软件介绍 idea 2020.是由捷克IntelliJ公司而…

快速响应,上门维修小程序让您享受无忧生活

随着科技的不断发展和智能手机的普及,上门维修小程序成为了现代人生活中越来越重要的一部分。上门维修小程序通过将维修服务与互联网相结合,为用户提供了更加便捷、高效的维修服务体验。下面将介绍上门维修小程序开发的优势。   提供便捷的预约方式&am…

NFTScan | 07.24~07.30 NFT 市场热点汇总

欢迎来到由 NFT 基础设施 NFTScan 出品的 NFT 生态热点事件每周汇总。周期:2023.07.24~ 2023.07.30 NFT Hot News 01/数据:Azuki 地板价跌破 5 枚 ETH,过去 7 日跌幅逾 20% 7月24日, Blur数据显示,Azuki地板价已跌破…

开关降压型DC-DC芯片方案:30V-80V转24V/12V/5V芯片

摘要:本文介绍了一种开关降压型DC-DC芯片方案,可将输入电压范围在9V至100V之间的信号转换为24V、12V和5V输出。该芯片采用了外挂MOS管,能够提供10A峰值电流输出,并且具备低待机功耗、内置过温保护和输出短路保护等功能。此外&…

【图像分类】CNN+Transformer结合系列.3

介绍两篇图像分类的论文:ResMLP(arXiv2305),MetaFormer(CVPR2022),两者都与Transformer有关系,前者基于transformer结构的特点设计ResMLP,后者认为宏观架构才是Transform…

【教程】Tkinter实现Python软件自动更新与提醒

转载请注明出处:小锋学长生活大爆炸[xfxuezhang.cn] 文件下载:https://download.csdn.net/download/sxf1061700625/88134425 示例演示: 参考代码: import os import _thread import shutil import subprocess import sys import …

RFID出入库管理系统

RFID(射频识别)技术作为一种先进的自动识别技术,已经广泛应用于各个领域,仓库管理系统就是其中之一。RFID仓储管理系统利用RFID技术实现实时数据传输和信息识别,为企业提供了高效、准确的库存管理解决方案。 RFID出入库管理系统基于RFID技术&…

基础概念:图片的卷积可视化结果

1. 前言 之前介绍过卷积的基本概念,具体的可以参考图片的卷积和池化操作,这里给出可视化的操作,因为卷积在初学的时候比较抽象,现在有时间就写写看,希望可以给初学的同学一点启发吧(这里前提是学过pytorch和相关的图像…

Elasticsearch和Kibana的安装及验证

金翅大鹏盖世英,展翅金鹏盖世雄。 穿云燕子锡今鸽,踏雪无痕花云平。 ---------------- 2023.7.31.101 ----------------- 本文密钥:365 Elasticsearch 是一个分布式的 RESTful 风格的搜索和数据分析引擎,常用来进行全文检索、…