• Rust入门基础


    Rust相关介绍

    为什么要用Rust?

    为什么要用Rust?

    • Rust是一种通用的编程语言,它可以让每个人编写可靠且高效的软件。
    • Rust可以用来替换C/C++,Rust和它们具有同样的性能,但是很多常见的bug在编译时就可以被消灭。

    与其他语言比较

    • C/C++性能非常好,但类型系统和内存都不太安全。
    • Java和C#,拥有垃圾收集器GC,能保证内存安全,也有很多优秀特性,但是性能不行。
    • Rust能够保证内存安全(无需GC),并且易于维护、调试,代码既安全又高效。

    Rust的优点

    Rust的优点:

    • 性能好,速度快。
    • 安全性高。
    • 具备出色的并发处理能力。
    注:Rust最大的缺点就是难学,因为Rust中有很多独有的概念,和现在大多数主流的编程语言都不同,所以学习Rust必须从基础一步一步学。
    
    • 1

    Rust的用户和案例

    Rust的用户和案例

    • Google:新操作系统Fuschia,其中Rust代码量大约占30%。
    • Amazon(亚马逊):基于Linux开发的可以直接在裸机、虚机上运行容器的操作系统。
    • System76:纯Rust开发了下一代安全操作系统Redox。
    • 蚂蚁金服:用Rust开发了库操作系统Occlum。
    • 斯坦福和密歇根大学:嵌入式实时操作系统,应用于Google的加密产品。
    • 微软:正在使用Rust重写Windows系统中的一些低级组件,微软的WinRT项目也新添加了对Rust语言的支持。
    • 其他公司:Dropbox、Yelp、Coursera、LINE、Cloudflare、Atlassian、npm、Ceph、百度、华为、Sentry、Deno等。

    Rust与Firefox

    • Rust最初是Mozilla公司的一个研究性项目,Firefox是Rust产品应用的一个重要的例子。
    • Mozilla一直以来都在用Rust创建一个名为Servo的实验性浏览器引擎,其中的所有内容都是并行执行的,Firefox原来的量子版就包含了Servo的CSS渲染引擎。

    Rust特别擅长的领域

    • 高性能Web Service。
    • WebAssembly。
    • 命令行工具。
    • 网络编程。
    • 嵌入式设备。
    • 系统编程。

    开发环境准备

    安装Rust

    安装Rust

    Linux/Mac操作系统执行如下命令进行安装:

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

    Windows操作系统的安装步骤如下:

    1、进入Rust官网,点击install按钮。如下:

    在这里插入图片描述

    2、根据操作系统的类型点击对应的32位或64位下载按钮。如下:

    在这里插入图片描述

    3、下载完后运行可执行程序可以看到如下内容:

    在这里插入图片描述

    相关解释:

    • 安装Rust后,Cargo的家目录被设置为用户家目录\.cargo
    • 安装Rust的时候会下载一些命令,这些命令对应的可执行程序就会放在用户家目录\.cargo\bin路径下。
    • 安装Rust后,用户家目录\.cargo\bin将会被添加到PATH环境变量中(运行Rust相关命令时不用指明路径)。

    4、点击回车开始下载,下载完毕后再次点击回车。如下:

    在这里插入图片描述

    注意: 安装完毕后需要重启当前的命令行终端,使得用户家目录\.cargo\bin被添加到PATH环境变量中,以便直接在命令行中运行rust相关命令。

    安装验证

    可以通过如下命令确保Rust安装成功:

    rustc --version
    
    • 1

    该命令将会输出当前安装的Rust编译器(rustc)的版本信息。如下:

    在这里插入图片描述

    说明一下:

    • 图中的1.73.0、cc66ad468和2023-10-03,分别是版本号、commit hash和commit日期。

    更新与卸载Rust

    更新与卸载Rust

    更新Rust执行如下命令:

    rustup update
    
    • 1

    卸载Rust执行如下命令:

    rustup self uninstall
    
    • 1

    开发工具

    开发工具

    Rust常用的开发工具如下:

    • Visual Studio Code(Rust扩展)。
    • Clion(IntelliJ IDEA系列)。

    在这些开发工具上下载对应的Rust插件即可进行Rust开发。如下:

    在这里插入图片描述

    本地文档

    安装Rust的时候会在本地安装文档,可离线浏览,通过rustup doc命令即可在浏览器打开本地文档。如下:

    在这里插入图片描述

    Hello World程序

    编写Rust程序

    编写Rust程序

    创建一个名为main.rs的文件,并编写如下内容:

    fn main() {
        println!("Hello World");
    }
    
    • 1
    • 2
    • 3

    相关说明:

    • Rust源文件以小写字母命名,多个单词之间使用下划线分开,文件以rs为后缀。
    • 代码中通过fn关键字定义了一个main函数,该函数没有参数也没有返回值。
    • 打印字符串时使用的println!不是函数,而是一个Rust macro(宏)。
    • Rust的缩进是4个空格,而不是一个制表符。
    • Rust中的表达式以分号结尾。

    编译与运行Rust程序

    编译Rust程序

    通过rustc命令即可对指定的Rust程序进行编译,并生成可执行程序。如下

    在这里插入图片描述

    说明一下:

    • Rust是ahead-of-time编程语言,程序编译生成可执行程序后可在无Rust环境的机器上运行。
    • Windows下生成的可执行程序名为xxx.exe,Linux/Mac下生成的可执行程序名为xxx。
    • Windows上还会生成一个xxx.pdb文件,里面包含的是调试信息。

    运行Rust程序

    执行可执行程序即可运行Rust程序。如下:

    在这里插入图片描述

    说明一下:

    • rustc只适合编译简单的Rust程序,实际开发中一般会使用Cargo。

    Cargo工具

    Cargo工具

    • Cargo是Rust的官方构建系统和包管理器,它是Rust生态系统中用于构建、测试、运行和发布Rust项目的工具。
    • Cargo提供了一种简单而强大的方式来管理Rust项目的依赖关系、构建过程和发布版本,它可以自动下载和安装所需的依赖项,编译源代码,运行测试套件,生成文档,并生成可执行文件或库。

    在安装Rust的时候会自动安装Cargo工具,通过cargo --version命令可以查看Cargo的版本。如下:

    在这里插入图片描述

    Cargo创建项目

    Cargo创建项目

    创建Rust项目的命令如下:

    cargo new 项目名称
    
    • 1

    该命令会在当前目录下创建一个项目目录,项目目录的名字与指定的项目名称相同。如下:

    在这里插入图片描述

    在项目的顶层目录下一个src目录、一个.gitignore文件和一个Cargo.toml文件。如下:

    在这里插入图片描述

    说明一下:

    • 在src目录下有一个main.rs源文件,该源文件中会自动生成Hello World程序,Rust项目的源代码都应该放在src目录下。
    • 顶层目录可以放置README、许可信息、配置文件以及其他与程序源码无关的文件。
    • Cargo会在项目目录初始化一个git仓库,以及一个.gitignore文件,如果在一个已经存在的git仓库中运行cargo new,则这些git相关文件则不会生成,这时可以通过运行cargo new 项目名称 --vcs=git指定让Cargo在项目目录初始化一个git仓库。
    • 如果创建项目时没有使用Cargo,后续也可以把项目转化为使用Cargo,只需要按照上述目录结构组织项目代码,并将相应的配置信息写入Cargo.toml即可。

    Cargo.toml

    • Cargo.toml是Rust项目中的一个配置文件,它位于项目顶层目录下,用于描述项目的元数据和依赖关系。
    • Cargo.toml文件采用TOML(Tom’s Obvious, Minimal Language)格式,这是一种易于阅读和编写的配置文件语言,它允许你指定项目的名称、版本号、作者、许可证等元数据信息,并列出项目所依赖的外部库或其他Rust包。

    使用Cargo工具创建项目时默认生成的Cargo.toml文件如下:

    [package]
    name = "hello_cargo"
    version = "0.1.0"
    edition = "2021"
    
    # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
    
    [dependencies]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    说明一下:

    • [package]是一个片段(section)标题,表明下面的语句用来配置一个包(package)。
    • 代码中的name、version和edition分别表示项目名、项目版本和使用的Rust版本。
    • [dependencies]是罗列项目依赖的片段的开始,Rust中代码包称为crate,当前项目不需要其他的crate。

    Cargo构建项目

    Cargo构建项目

    构建Rust项目的命令如下:

    cargo build
    
    • 1

    该命令会编译项目代码,并在项目目录/target/debug/目录下生成可执行程序。如下:

    在这里插入图片描述

    说明一下:

    • 第一次运行cargo build会在项目顶层目录下生成Cargo.lock文件,该文件负责追踪项目依赖的精确版本,一般情况下不需要手动修改文件内容。

    Cargo构建并运行项目

    Cargo构建并运行项目

    构建并运行Rust项目的命令如下:

    cargo run
    
    • 1

    该命令会编译项目代码生成可执行程序,并自动执行可执行程序。如下:

    在这里插入图片描述

    如果之前编译成功过,并且源代码没有改变,那么执行cargo run就会直接运行可执行程序。如下:

    在这里插入图片描述

    Cargo检查项目

    Cargo检查项目

    检查Rust项目的命令如下:

    cargo check
    
    • 1
    • 该命令会检查项目代码,确保代码能够通过编译,但不会产生任何可执行文件。
    • cargo check比cargo build快得多,开发者在编写程序的过程中会反复调用cargo check,以保证自己写的代码可以通过编译,只有在真正需要生成可执行程序的时候才会调用cargo build或cargo run。

    如果将Hello World程序中的英文分号换成中文分号,那么在cargo check时就会发现错误。如下:

    在这里插入图片描述

    Cargo为发布构建项目

    Cargo为发布构建项目

    为发布构建Rust项目的命令如下:

    cargo build --release
    
    • 1

    该命令会在编译代码时会进行优化,以保证编译出来的代码会运行得更快。如下:

    在这里插入图片描述

    需要注意的是,为发布构建Rust项目生成的可执行程序在项目目录/target/release/目录下。如下:

    在这里插入图片描述

  • 相关阅读:
    skywalking
    Linux系统命令——进程管理命令
    aarch64 gcc 10.3.1 源码编译 qemu-4.2.0
    NGINX源码之:目录导航
    AI智能问答系统源码/AI绘画商业系统/支持GPT联网提问/支持Midjourney绘画
    CF-957(D-E)
    1、编辑利器vim
    软体机器人与拓扑优化
    通过 Nginx 实现多机负载均衡
    SPOJ DQUERY D-query(主席树维护区间 求区间内不同数字的个数)
  • 原文地址:https://blog.csdn.net/chenlong_cxy/article/details/133696735