您的位置 : 首页 常识

rust按键 rust新手教程入门(Rust 入门教程)

大家好呀,今天是周三,有机会早点下班给大家继续分享rust 入门相关内容,上期文章我们重点介绍了如何在不同的操作系统,linux, window,类unix,mac上进行rust 的安装和使用vscode 作为ide 进行简单的rust 项目创建和运行。


今天,我们继续上一次的入门教程1,介绍下,一个简单的二进制rust 项目,分为哪几个部分,rust 的基本语法等相关内容。

如下图是我们上次创建的全新的rust 二进制项目:

新建的rust 二进制可运行项目

一个二进制项目由几个部分组成,我们先看左边的目录,当你使用cargo new TOUTIAO 创建一个名字为TOUTIAO的项目时, rust 会创建一个名为TOUTIAO的文件夹,文件夹中存在src 目录,下面保存我们的main.rs ,程序入口文件。与src 目录同级的,还有Cargo.toml文件,作为项目的包管理和配置文件存在。

其中的target 目录和Cargo.lock 是编译后生成的,看过我前一期的同学,应该都安装了rust analyzer, 如果安装了插件,则它会自动编译生成这两个文件。

这两个文件的作用我们下面再说。

先来说一下cargo.toml 文件,如下图所示:

cargo.toml 文件

如果你没有配置git啥的自我身份认证信息,那么生成的结果大概率如上所示,一个最简单的rust 配置文件。它使用 toml , 这种简单易配置的格式进行项目配置。

其中第一个[package] 下面全部是描述我们新建的可执行文件的信息。它的名字啊,版本,使用的rust 版本啊等等。

而第二个[dependencies] 就是三方依赖填写的位置,由于我们是个新建的项目,还没有引入三方包,所以此处为空。(后续课程示例会进行引入)。

然后再来说一下Cargo.lock 文件,这个文件是rust 多版本管理的一个用起来很舒服顺手的创新,十分方便项目的移植,能够保证同一个项目在不同的机器上运行时,不需要进行版本配置等繁琐的手动配置。

我们来举一个例子,如下图:

一个没有引入任何三方包的cargo.lock

如上图是一个没有引入任何三方包的cargo.lock,我们发现,其实就没啥内容,就是上面提到过的一些本包的信息。

然后我们引入一个rust 里最常用的rand 随机数包。

我们在cargo.toml中,添加一个rand三方包,版本是0.8.4

此时,你如果安装了rust analyzer,会看到下面的小齿轮会转一会儿,然后把rand 包进行引入和重新编译。

之后,我们观察cargo.lock文件的内容,

引入rand包后的cargo.lock文件

我们发现,就因为我们引入了一个rand 包,cargo.lock 就变成了一副我们完全不认识的模样。

其实Cargo.lock 会记录rand包以及rand 包此版本所依赖的所有包的信息,把所有递归依赖进行了记录,这样,别人下载了你的代码,在本地进行运行时,就可以快速且准确的知道需要哪些依赖,这些都在lock文件中记录并且自动下载和编译,这样,就保证了项目跨电脑,跨平台编译的统一性。

最后,我们来看下rust 的main.rs 文件,看一下一个最简单的rust 程序组成。

如下图:

rust 的main.rs 文件

1、 rust 默认也是从main 函数作为入口函数进行执行,每个二进制可执行的rust 程序必须含有一个main 函数入口。

2、 rust 函数使用关键字fn 进行定义,然后我们使用了println! 这个宏(注意,此处是rus 宏的使用,不是函数,println 后面的!是感叹号,代表是一个宏)进行了字符串hello world 的打印。

我们也可以修改一下,打印一些其它的东西,比如:

修改了打印内容的main 函数

上面的代码运行结果如下所示:

直接使用cargo run 运行程序

我们看到,直接使用cargo run 运行程序,得到跟上面代码编写的内容一致的打印内容到命令行窗口中。


为您推荐

返回顶部