創建項目
按照之前的章節講的創建一個 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." 時,你輸入一個數字,然后,就會打印出你輸入的數字是什么。