Rust 新手程式設計/基礎數學測試程式/使用者輸入
外觀
< Rust 新手程式設計 | 基礎數學測試程式
現在,我們想要讀取使用者輸入。在終端中,當用戶輸入文字時,它會被髮送到一個叫做 stdin(標準輸入的縮寫)的東西。我們再次轉向標準 Rust 關於 stdin 的文件。 文件極其重要,因為很少有程式獨立存在,而是與其他程式碼/系統整合,以便更輕鬆地完成常見的事情。stdin 位於 std::io 中,其中 std 代表標準,io 代表輸入/輸出。std 是標準庫,這意味著它是由設計 Rust 程式語言的同一團隊正式設計和記錄的。這通常提供了更高的確定性,確保程式碼安全、高效,以及文件清晰、詳細。在這裡,我們想編寫一個新函式,等待使用者輸入,並在收到該輸入後返回該數字。首先,讓我們只接收輸入並將其列印到終端
fn wait_for_input() {
let mut buffer = String::new();
io::stdin().read_line(&mut buffer).unwrap();
println!("{}", buffer);
}
值得注意的是,read_line() 函式接收可變字串而不是返回字串。這是因為建立和分配字串可能會很昂貴,如果我們想追加到現有字串,則需要額外的分配。因此,接收字串緩衝區允許使用者建立自己的字串或使用現有字串,這在沒有額外成本的情況下更靈活。它也可能失敗併產生錯誤,該錯誤以 Result 的形式出現。現在,我們將假設沒有錯誤,並在出現錯誤時恐慌。然後,我們記得在頂部放置
use std::io;
,並將我們的 main 函式更改為
fn main() {
print_question(35, 23, Operator::Subtraction);
wait_for_input();
}
現在,如果我們執行它,我們可以看到它不會立即停止,我們可以在終端中輸入。當我們在其中鍵入內容並按回車鍵時,我們鍵入的內容會再次重複,表明它正在工作!但是,我們有一個字串,而我們需要將使用者輸入作為數字。