Rust学习(一):初识Rust和Rust环境配置

一、前言:

Rust相信计算机专业的老师和同学对此一定不会陌生,连续多年被评为最受欢迎的编程语言,被誉为C/C++的替代者,以高效、安全而闻名于世,本系列文章,将聚焦于《Rust数据结构与算法》一书,笔者以自己学习该书的粗浅理解尝试阐述书中的哲学和原理,以帮助对Rust感兴趣的小白同学,更好的理解Rust的编程逻辑和哲学,如有错误和不足之处,欢迎大家指正和修改!在此对本书的作者谢波老师,以及Rust语言社区的各位老师致以无限的敬意!希望各位同学也积极分享自己的想法和建议,为Rust社区添砖加瓦,推动Rust的发展。

内容概述:

本系列文章将围绕《Rust数据结构与算法》一书展开,以书中的十章目录为基础,衍生一系列介绍Rust算法逻辑的博客(内容如下):

第一章:Rust基础:

第二章:计算机科学(概述):

第三章:算法分析:

第四章:基础数据结构:

第五章:递归:

第六章:查找:

第七章:排序:

第八章:树:

第九章:图:

第十章:实战:

下面让我们正式开始Rust之旅吧,首先来了解一下Rust的历史,并在自己的计算机上安装上Rust的环境和工具链!

二、Rust的历史:

Rust是一门类似于C/C++的底层编程语言,在兼具C/C++的高速运行的优势,同时也对C/C++的内存风险进行了优化,C/C++中的很多概念(指针、引用等)都可以帮助你更好的学习Rust,当然Rust也有他自己的特点如:所有权、生命周期(这也是Rust中最难学的部分),这些都将在后面的博客中一一介绍,大家不用担心,现在担心也没用(doge)。

Rust是一种高效、可靠的通用高级编译型语言,后端基于LLVM(Low Level Virtual Machine)。作为一种底层的高级编程语言,Rust兼顾了开放效率和执行效率,因此深受关广大开发者的喜爱。

Rust最早是Mozilla工程师Graydon Hoare的个人项目,当时Mozilla正苦于Firefox Gecko的各种漏洞和性能瓶颈,传统的C/C++语言难以继续维持如此庞大的历史包袱的项目,继续一种可以安全编程的语言来维持Firefox的现金性,Rust的出现填补了他们的需求, 因此Rust于2009年得到了Mozilla研究院的支持,并于2010年正式对外公布。

2010-2011期间,Rust替换了用OCaml编写的编译器,实现了自举,并于2015年发布了Rust的第一个稳定版本,即Rust1.0版本。Rust建立了一个强大且活跃的社区,形成了一套完善的更新机制: Rust规定每6周发布稳定版和测试版,每三年发布一个大版本更新!(和C++三年一更新保持一致)

2021年,谷歌、微软、亚马逊、Mozilla等公司成立了Rust基金会,Rust逐步开始重写一些重要的编程项目(Apache httpd、OpenSSL等)。

Rust采用了现代化的工程管理工具Cargo并配合随时随地可用的线上包(crate),极大的提高了开发效率,当然如果不能清晰的理解Cargo的包管理结构,将会是一场灾难!Rust所用的包都会被发布到crate.io上,如果你实现了某个crate项,可以将其推送到crate.io上供其他人使用。

三、Rust的安装(linux/MacOS):

部分Linux系统自带了Rust语言环境(如:Ubuntu22.04),可以直接使用,但是其他类Unix系统依然需要手动安装Rust的语言环境和工具链:

1、下载并配置Rust环境:

sh 复制代码
$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh   #安装rust环境和工具链的sh配置脚本

2、配置环境变量:

配置环境变量的目的是:使系统能够在任意目录下找到并使用rust的相关工具,打开bashrc文件:

sh 复制代码
$ sudo vim ~/.bashrc  
# 如果没有下载vi/vim工具,(最好下载一下,以后会经常使用)可以使用自带的nano工具

将如下三行添加到bashrc文件里:

sh 复制代码
export RUSTPATH=$HOME/.cargo/bin
export PATH=$PATH:$RUSTPATH

完成之后,更新bashrc文件:

sh 复制代码
$ source ~/.bashrc

Rustup管理着:Rust工具的安装、升级和卸载,**注意:**Rust语言包括stable(稳定版)和nightly(测试版)两个版本,并且这两个版本可以共存,默认首次安装时,不下载nightly版本,可以通过rustup查看当前安装的rust版本和正在使用的rust版本:

sh 复制代码
$ rustup toolchain list
# 通过rustup安装nightly版本:
$ rustup default nightly
# 切换使用的rust版本:
$ rustup default stable

到此,你已经完成了rust环境和工具链的安装,可以尝试运行一下看看能不能打印出"hello world"(doge),最后的最后,一定要动手操作,编程光靠眼睛看是学不会的!

相关推荐
liang_20265 分钟前
【HT周赛】T3.二维平面 题解(分块:矩形chkmax,求矩形和)
数据结构·笔记·学习·算法·平面·总结
三块钱07947 分钟前
【原创】基于视觉大模型gemma-3-4b实现短视频自动识别内容并生成解说文案
开发语言·python·音视频
虾球xz8 分钟前
游戏引擎学习第290天:完成分离渲染
c++·人工智能·学习·游戏引擎
易只轻松熊8 分钟前
C++(20): 文件输入输出库 —— <fstream>
开发语言·c++·算法
虾球xz10 分钟前
游戏引擎学习第285天:“Traversables 的事务性占用”
c++·学习·游戏引擎
芯眼11 分钟前
ALIENTEK精英STM32F103开发板 实验0测试程序详解
开发语言·c++·stm32·单片机·嵌入式硬件·社交电子
虾球xz1 小时前
游戏引擎学习第280天:精简化的流式实体sim
数据库·c++·学习·游戏引擎
青出于兰1 小时前
C语言| 指针变量的定义
c语言·开发语言
深度学习入门1 小时前
学习深度学习是否要先学习机器学习?
人工智能·深度学习·神经网络·学习·机器学习·ai·深度学习入门
勇敢牛牛_1 小时前
使用Rust开发的智能助手系统,支持多模型、知识库和MCP
ai·rust·rag·mcp