Rust - 软件包(Package)

Rust - 软件包(Package) 首页 / Rust入门教程 / Rust - 软件包(Package)

Cargo这就像一个工具,并管理Rust项目。

下表列出了一些常用的命令-

Sr.NoCommand & 描述
1

cargo build

编译当前项目。

2

cargo check

分析当前项目并报告错误,但不构建目标文件。

3

cargo run

生成并执行src/main.rs。

4

cargo clean

删除目标目录。

5

cargo update

更新Cargo.lock中列出的依赖项。

6

cargo new

创建一个新的项目。

cargo有助于下载第三方库,因此,它就像一个程序包管理器,您也可以构建自己的库,当您安装Rust时,默认情况下会安装Cargo。

要创建一个新的cargo项目,我们可以使用下面给出的命令。

创建项目名称

cargo new project_name --lib

要检查cargo的当前版本,请执行以下命令-

cargo --version

创建Binary Cargo项目

生成一个随机数字,并提示用户猜测该数字。

步骤1  -  创建项目名称

打开终端,然后输入以下命令 cargo new guess-game-app --bin 。

这将创建以下文件夹结构。

guess-game-app/
   -->Cargo.toml
   -->src/
      main.rs

cargo new 用于创建crate, -bin 标志指示正在创建的crate是二进制crate,公共包装 crate 存储在名为crates.io https://crates.io/的中央存储库中。

步骤2  -  外部库引用

此示例需要生成一个随机数,由于内部标准库不提供随机数生成逻辑,因此我们需要查看外部库或创建。让我们使用crates.io网站上 crates.io

https://crates.io/crates/rand 是一个随机的Rust数字生成, Rand提供实用程序来生成随机数。

下图显示了crate.io网站和rand crate的搜索输出。

external libraries

将rand crate的版本复制到Cargo.toml文件 rand =" 0.5.5" 。

[package]
name="guess-game-app"
version="0.1.0"
authors=["Learnfk"]

[dependencies]
rand="0.5.5"

步骤3  -  编译项目

导航到项目文件夹,在终端窗口上执行命令构建-

Updating registry `https://github.com/rust-lang/crates.io-index`
Downloading rand v0.5.5
Downloading rand_core v0.2.2
Downloading winapi v0.3.6
Downloading rand_core v0.3.0
   Compiling winapi v0.3.6
   Compiling rand_core v0.3.0
   Compiling rand_core v0.2.2
   Compiling rand v0.5.5
   Compiling guess-game-app v0.1.0 
   (file:///E:/RustWorks/RustRepo/Code_Snippets/cargo-projects/guess-game-app)
   Finished dev [unoptimized + debuginfo] target(s) in 1m 07s

rand crate和所有传递依赖项(rand的内部依赖项)将自动下载。

步骤4  -  编辑main.rs文件

将业务逻辑添加到main.rs文件。

无涯教程网

use std::io;
extern crate rand; 
//导入外部包
use rand::random;
fn get_guess() -> u8 {
   loop {
      println!("Input guess") ;
      let mut guess=String::new();
      io::stdin().read_line(&mut guess)
         .expect("could not read from stdin");
      match guess.trim().parse::<u8>(){ 
         Ok(v) => return v,
         Err(e) => println!("could not understand input {}",e)
      }
   }
}
fn handle_guess(guess:u8,correct:u8)-> bool {
   if guess < correct {
      println!("Too low");
      false

   } else if guess> correct {
      println!("Too high");
      false
   } else {
      println!("You go it ..");
      true
   }
}
fn main() {
   println!("Welcome to no guessing game");

   let correct:u8=random();
   println!("correct value is {}",correct);
   loop {
      let guess=get_guess();
      if handle_guess(guess,correct){
         break;
      }
   }
}

步骤5  -  编译并执行项目

在终端上执行 cargo run 命令。确保终端指向项目目录。

Welcome to no guessing game
correct value is 97
Input guess
20
Too low
Input guess
100
Too high
Input guess
97
You got it ..

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

从0开始学架构 -〔李运华〕

邱岳的产品实战 -〔邱岳〕

Service Mesh实战 -〔马若飞〕

如何看懂一幅画 -〔罗桂霞〕

程序员的测试课 -〔郑晔〕

徐昊 · TDD项目实战70讲 -〔徐昊〕

超级访谈:对话玉伯 -〔玉伯〕

结构执行力 -〔李忠秋〕

超级访谈:对话道哥 -〔吴翰清(道哥)〕

好记忆不如烂笔头。留下您的足迹吧 :)