- Rust 教程
- 铁锈 - 主页
- Rust - 简介
- Rust - 环境设置
- Rust - HelloWorld 示例
- Rust - 数据类型
- Rust - 变量
- 铁锈 - 恒定
- Rust - 字符串
- Rust - 运算符
- Rust - 决策
- 铁锈 - 循环
- Rust - 函数
- Rust - 元组
- Rust - 数组
- Rust - 所有权
- Rust - 借用
- 铁锈 - 切片
- Rust - 结构
- Rust - 枚举
- Rust - 模块
- Rust - 收藏
- Rust - 错误处理
- Rust - 泛型类型
- Rust - 输入输出
- Rust - 文件输入/输出
- Rust - 包管理器
- Rust - 迭代器和闭包
- Rust - 智能指针
- Rust - 并发
- Rust 有用的资源
- Rust - 快速指南
- Rust - 有用的资源
- Rust - 讨论
Rust - 包管理器
Cargo 是 RUST 的包管理器。这就像一个工具并管理 Rust 项目。
下表列出了一些常用的货物命令 -
先生编号 | 命令与说明 |
---|---|
1 | 货物建造 编译当前项目。 |
2 | 货物检查 分析当前项目并报告错误,但不构建目标文件。 |
3 | 货物运行 构建并执行 src/main.rs。 |
4 | 货物干净 删除目标目录。 |
5 | 货物更新 更新 Cargo.lock 中列出的依赖项。 |
6 | 货物新 创建一个新的货运项目。 |
Cargo 有助于下载第三方库。因此,它的作用就像一个包管理器。您还可以构建自己的库。安装 Rust 时默认安装 Cargo。
要创建一个新的货物项目,我们可以使用下面给出的命令。
创建一个二进制箱
cargo new project_name --bin
创建一个库箱
cargo new project_name --lib
要检查货物的当前版本,请执行以下命令 -
cargo --version
插图 - 创建一个 Binary Cargo 项目
游戏会生成一个随机数并提示用户猜测该数字。
第 1 步 - 创建项目文件夹
打开终端并输入以下命令Cargo new Guess-Game-App --bin。
这将创建以下文件夹结构。
guess-game-app/ -->Cargo.toml -->src/ main.rs
货物新命令用于创建一个箱子。--bin标志指示正在创建的 crate 是二进制 crate。公共板条箱存储在名为 crates.io https://crates.io/的中央存储库中。
第 2 步 - 包含对外部库的引用
本例需要生成一个随机数。由于内部标准库不提供随机数生成逻辑,因此我们需要查看外部库或 crate。让我们使用rand crate,可以在 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 = ["Mohtashim"] [dependencies] rand = "0.5.5"
第三步:编译项目
导航到项目文件夹。在终端窗口上执行命令cargo build -
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 箱和所有传递依赖项(rand 的内部依赖项)将自动下载。
第 4 步 - 了解业务逻辑
现在让我们看看猜数字游戏的业务逻辑是如何工作的 -
游戏最初生成一个随机数。
要求用户输入并猜测数字。
如果数字小于生成的数字,则打印消息“Too low”。
如果数字大于生成的数字,则会打印消息“Too high”。
如果用户输入程序生成的数字,游戏就会退出。
第 5 步 - 编辑 main.rs 文件
将业务逻辑添加到 main.rs 文件中。
use std::io; extern crate rand; //importing external crate 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>(){ //remember to trim input to avoid enter spaces 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; } } }
第 6 步 - 编译并执行项目
在终端上执行命令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 ..