创建项目
按照之前的章节讲的创建一个 Cargo 项目的方法,自己创建一个名为 guessing_game 的 cargo 项目并执行,确保能成功打印出 Hello World。
编写代码
使用 RustRover 打开项目,打开 src/main.rs 文件,我们将在这个文件中编写我们的代码。
将以下内容敲入 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);
}
use std::io;
这行代码导入标准库中的 io 模块,用于处理输入/输出操作。
fn main() {
这行代码定义了主函数,它是 Rust 程序的入口点。
println!("Guess the number!");
这行代码打印字符串到控制台,提示用户猜数字。
println!("Please input your guess.");
这行代码再次打印字符串,提示用户输入猜测。
letmut guess = String::new();
声明一个可变(mut)变量guess
,并初始化为一个空的String
类型实例。String
是 Rust 中可增长的、UTF-8 编码的字符串类型。
io::stdin()
这行代码调用 io
模块的stdin()
函数,返回一个Stdin
类型实例,代表标准输入(通常是键盘)。
.read_line(&mut guess)
这行代码调用Stdin
实例的read_line()
方法。它读取用户输入的一行文本,并将其追加到guess
变量中。&mut guess
表示将guess
的可变引用传递给read_line
,这样read_line
就可以修改guess
的内容。
.expect("Failed to read line");
这行代码是处理异常, read_line
方法返回一个Result
类型。expect()
方法用于处理这个Result
。 如果Result
是Ok
(表示成功),expect()
会解包并返回内部的值。 如果Result
是Err
(表示失败),expect()
会使程序崩溃,并打印括号中的错误消息。 在这里,如果读取输入失败,程序就会带着“Failed to read line”消息终止。
println!("You guessed: {}", guess);
这行代码是将用户输入的猜测数字打印出来,{}
是占位符,会被guess
变量的值替换。 println!
是一个宏,用于格式化输出。
运行
之前讲过,使用如下命令运行项目:
cargo run
当打印出"Please input your guess." 时,你输入一个数字,然后,就会打印出你输入的数字是什么。