【Rust指南】使用Cargo工具高效创建Rust项目 | 理解Rust特别的输入输出语句-LMLPHP

  前言

  本文紧跟上篇Rust博文内容,讲解Cargo工具在Rust项目创建时的妙用,手把手教你使用Cargo工具在黑窗口创建项目。此外,创建项目之后,简单的做一个Rust语言中输入输出的测试,上文提到学好Rust语言的方法就是一步一步打基础,因此仍要潜心修炼,打牢基础。


一、功能强大的Cargo工具

1、Cargo工具是什么?

  • Cargo 是Rust 的构建系统和包管理工具,主要功能包括:
    • 创建和管理 Rust 的模块系统
    • 下载和管理依赖库
    • 调用rustc或其他构建工具来构建项目
  • 安装Rust 的时候会自动安装Cargo
    • 验证的命令: cargo --version

2、使用Cargo命令创建 hello_cargo 项目

  • 命令:cargo new hello_cargo
    【Rust指南】使用Cargo工具高效创建Rust项目 | 理解Rust特别的输入输出语句-LMLPHP
    其中code .是VSC工具的命令,意思是使用他来打开项目文件:
    【Rust指南】使用Cargo工具高效创建Rust项目 | 理解Rust特别的输入输出语句-LMLPHP

可以看到Cargo工具为我们生成了其他的文件,具体看一下都是什么作用:

  • 自动创建了一个新目录hello_cargo,包含:
    • Cargo.toml
    • src目录
      • main.rs
    • 初始化了一个新的Git仓库:.gitignore
      • 可以使用其他的vcs(版本控制系统)
      • 或者不适用vcs:cargo new 项目名 --vcs

3、项目文件目录里各文件的内容和特点

  1. Cargo.toml

    • TOML(Tom’s Obvious,Minimal Language)格式,存放Cargo的配置
      【Rust指南】使用Cargo工具高效创建Rust项目 | 理解Rust特别的输入输出语句-LMLPHP
    • [package],是一个区域标题,表示下方内容是用来配置包的(package)
      • name:项目名
      • version:项目版本
      • edition:使用的Rust版本
    • [dependencies]
      • 另一个区域的开始,它会列出项目的依赖项。
    • 在Rust里,代码的包写做:crate
  2. src/main.rs

    • cargo生成的 main.rs 在src目录下,此外源代码都应该放在src目录下
    • cargo.toml在项目顶层下
    • 顶层目录可以放置:RENAME、许可信息、配置文件等
    • 将非cargo创建的项目转化为cargo的方法:
      • 把源代码移动到src里面
      • 创建cargo.toml并填写相应的配置
  3. Cargo.lock

    • 第一次执行Cargo build命令会在顶层目录生成 cargo.lock文件
      • 该文件负责追踪项目依赖的精确版本
      • 不需要手动修改此文件

4、Cargo 常用命令

  1. cargo build
    • 创建可执行文件:target\debug\hello_cargo.exe
  2. cargo run
    • 构建和运行cargo项目,编译代码+执行结果
    • 如果之前编译过且源码没有发生改变,则会直接运行二进制文件
  3. cargo check
    • 检查代码,确保能够通过编译,但是不产生任何可执行文件
    • cargo check 要比 cargo build 快得多
      • 编写代码得时候可以周期性得使用cargo check命令检查代码,提高效率
  4. cargo build --release
    • 一共两种配置:
      • 开发使用 :cargo build
      • 正式发布: cargo build --release
    • 为发布构建,编译时会进行优化
      • 代码运行速度会更快,但是编译时间长
    • 会在target/release 目录下生成可执行文件,而不是 target/debug

二、Rust 语言的输入输出

1、输入输出测试

源码:

use std::io;

fn main() {
    println!("测试输入输出功能");
    println!("从键盘输入一个数字:");

    let mut a=String::new();

    io::stdin().read_line(&mut a).expect("无法读取行");

    println!("输出结果为:{}",a);
}

运行效果:

【Rust指南】使用Cargo工具高效创建Rust项目 | 理解Rust特别的输入输出语句-LMLPHP

2、具体代码解析

接下来把不熟悉的代码依次解释:

let mut a=String::new();

use std::io;
io::stdin().read_line(&mut a).expect("无法读取行");

println!("输出结果为:{}",a);

本文有关Cargo工具的使用和Rust输入输出的分享到此结束,期待你的鼓励支持~

08-10 10:33