懂你,更懂Rust系列之Cargo
共 1597字,需浏览 4分钟
·
2021-01-07 12:27
我习惯在包里藏一瓶百无聊赖
打发人间的白云和苍狗
设计睡着的未来
我庆幸那些难堪正中我的下怀
让我怀疑我的存在
最后笑了起来
上一次,描述了Rust的安装环境,及其环境配置,同时编写了第一个Rust程序"Hello World",需要回忆下的,点击传送门
第一个Rust程序是比较简单的程序了,一般来说,写一个程序,可能需要添加更多的依赖包,帮助程序的运行,同时也避免闭门造车。类似Java的maven构建程序,Rust也有属于自己的项目管理和包管理器,这就是--
Cargo
按照上文提到的环境搭建,是已经安装好了Cargo的,
可以检查下 cmd命令"Cargo --version"
如果没有出现版本相关信息,请自行安装Cargo
下面,用Cargo创建新项目,看看和前面的有哪里不同
打开一个专门存放Rust项目的位置
我这里是D盘,rustwork
创建一个first-cargo
进入该项目
查看项目信息
可以看见Cargo给创建了2个文件和一个src文件夹
其中一个.gitignore是创建的基于git远程项目的文件信息,如果在现有的Git仓库中运行Cargo,将不再会生成.gitignore文件,可以使用命令
cargo new——vcs=git
来覆盖
另外一个Cargo.toml,打开看看这个文件
这里描述了项目版本和作者相关信息
[dependencies]可以增加更多的依赖,这里先不讲述如何增加依赖,在以后的章节中会描述如何添加依赖
打开生成的src文件夹
这里有一个生成好的main.rs文件,
这里,编写这个文件,直接输出"Hello Cargo"
下面是构建这个Cargo项目:
这就表示构建成功了
构建完成后,在项目根目录下,可以发现多了一个文件夹:
这个target中会包含编译后的信息
进入到target/debug中,可以看到编译后的可执行文件first-cargo.exe
<注意区别Mac和Linux,前面环境搭建中说过>
这里执行这个可执行文件
也可以通过直接Cargo命令运行
此时可以看见,没有看见编译的过程,因为这时候没有对文件进行改变,所以没有编译的过程
这时,改变下main.rs文件
运行
这里可以看见编译的步骤
关于Cargo,还要一个命令就是cargo check
cargo check,顾名思义,只检查编辑的代码文件,并不会产生可执行文件,只是确保代码可被build,所以check要比build快很多
当代码编写完毕,准备编译发布的时候,可以使用命令进行优化编译:
此时,在target下面会生成一个release文件夹
这个release是之前没有的(前面不是在debug文件夹中找到可执行文件的嘛)
在这里也可以看见被优化编译后的可执行文件
Rust实战--小游戏
通过前面环境搭建和本节的Cargo构建项目,这里先来一个实战Rust小项目
练练手
创建一个Cargo项目--> first-guess
进入项目文件夹编写代码
默认创建的main.rs文件会有默认的一行代码:
这里因为代码量比较多了,就不用命令行写了,先用文本编辑器编写<后面会介绍几种IED>
这里先直接把上图代码写到main.rs文件中
编译运行:
简单对上面代码做个说明
第1行:use std::io 这是指使用到Rust标准语言库,这里因为需要获取用户键盘输入数据,所以需要用到IO库
第8行:let mut guess = String::new() 这是指定义一个可变变量<这里先了解这个词语,后面说Rust语法和数据类型会详细说到>guess来接收用户输入的一个数字,这里定义的字符串来接收,所以只要你输入的可转化为字符串,程序都是可以的,不会抛出异常。
第10-12行:
io::stdin()
.read_line(&mut guess)
.expect("读取异常")
调用IO库读取用户输入的数字,或抛出异常
今日就先到这儿了,后续Rust语法和数据类型
有喜欢的欢迎关注转发