创建一个新的Rust项目
打开命令行工具输入以下指令(确保你的环境变量已经添加到系统当中 rust安装教程)
$ cargo new guessing_game
$ cd guessing_game
第一行指令为我们创建了一个新的名字为guessing_game的rust项目,第二条指令是切换到我们的项目文件夹目录,在这里你可看到项目的详细信息比如:
打开Cargo.toml文件你可以看到如下信息
[package]
name = "guessing_game"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
下面打开main.rs文件这是Rust项目的主函数
fn main() {
println!("Hello, world!");
}
现在我们可以使用以下指令运行一下这个新的项目
cargo run // 确保你已经设置好了环境变量
如果以上没有错误出现会的到如下信息:
C:\Users\guessing_game>cargo run
Compiling guessing_game v0.1.0 (C:\Users\guessing_game)
Finished dev [unoptimized + debuginfo] target(s) in 3.21s
Running `target\debug\guessing_game.exe`
Hello, world!
编写你的一个rust项目
根据rust官方提供的一处理猜测的项目我们一步一步来编写这个项目,首先打开你的main.rs文件编写如下代码:
use std::io;
fn main() {
println!("Guess the number!");
println!("Please input your guess.");
let mut guess = String::new();
io::stdin()
.read_line(&mut guess)
.expect("Failed to read line");
println!("You guessed: {guess}");
}
让我们逐行来分析这段代码,首先我们导入了一个基础包输入\输出 io 然后被称为std
use std::io;
然后进入了主函数,()代表这个一个不带参数的函数,然后 { 是这个函数的开始 以 } 结束在这里编写我们运行的代码,
fn main() {
在主函数中 第一行,第二行分别打印了两行字符串
println!("Guess the number!");
println!("Please input your guess.");
下一行创建了一个变量来存储用户的输入,在这里我们创建了一个名字为guess的字符串可变对象,在rust中变量默认是不可变的,如果需要变量可变需要在变量名前面加上 mut关键字
let mut guess = String::new();
让我们继续往下看现在我们要使用io库中的stdin函数来接收用户的输入,如下:
io::stdin()
.read_line(&mut guess)
紧接着调用了read_line(&mut guess)方法来处理用户的输入 &指示这个参数是一个一个引用,在rust中引用是个一个非常复杂的概念在初期我们可以不用详细的了解相关的知识,我们只需要如何安全并且简单的使用他们就可以了,因为引用是不可变的,所以我们要在引用前面加上mut标识符,使得它变成可变的。
这一行中最后的一句:
.expect("Failed to read line");
让我们慢慢来分析一下这行代码,很显然这行代码是在处理错错误信息,因为read_line方法会返回一个Result,Result带有两种变形OK Err 前者代表处理成功,后者代表处理失败。Result对象实例有一个expect方法,你可以调用这个方法当Result返回一个错误 expect方法会使程序崩溃然后打印出你传入到这个方法中的信息。如果你在代码中没有调用这个方法当你运行的时候会有一个警告弹出。
紧接着最后一行我们打印出来用户输入的信息:
println!("You guessed: {guess}");
上面打印的信息中{}是一个占位符,表示你可以放置你想打印的信息,当然你也可以打印更多的值如下:
let x = 5;
let y = 10;
println!("x = {} and y = {}", x, y);
这里会输出: x = 5 and y = 10.
现在上面的代码我们都分析完了让我们运行下代码使用cargo run然后输入一个数字
$ cargo run
Compiling guessing_game v0.1.0 (file:///projects/guessing_game)
Finished dev [unoptimized + debuginfo] target(s) in 6.44s
Running `target/debug/guessing_game`
Guess the number!
Please input your guess.
6
You guessed: 6
这样你就完成了你的第一个rust程序。