Cargo这就像一个工具,并管理Rust项目。
下表列出了一些常用的命令-
Sr.No | Command & 描述 |
---|---|
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
生成一个随机数字,并提示用户猜测该数字。
打开终端,然后输入以下命令 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/的中央存储库中。
此示例需要生成一个随机数,由于内部标准库不提供随机数生成逻辑,因此我们需要查看外部库或创建。让我们使用crates.io网站上 crates.io
https://crates.io/crates/rand 是一个随机的Rust数字生成, Rand提供实用程序来生成随机数。
下图显示了crate.io网站和rand crate的搜索输出。
将rand crate的版本复制到Cargo.toml文件 rand =" 0.5.5" 。
[package] name="guess-game-app" version="0.1.0" authors=["Learnfk"] [dependencies] rand="0.5.5"
导航到项目文件夹,在终端窗口上执行命令构建-
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的内部依赖项)将自动下载。
将业务逻辑添加到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; } } }
在终端上执行 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 ..
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)