พื้นฐาน Rust
Reading User Input in Rust
Read a line with read_line, trim it and parse it into a number without crashing on bad input.
สิ่งที่คุณจะได้เรียนรู้
- io::stdin().read_line
- trim and parse
- Handling bad input with match
From the keyboard to a number
- 1
read_line"36\n" - 2
trim()"36" - 3
parse::<u32>()Ok(36) - 4
age + 137
Text in, number out
read_line waits for the user to type a line and press Enter, then adds the text to a String. The text always arrives as a string, so numbers must be parsed before you calculate with them.
trim removes the newline that read_line keeps at the end. parse::<u32>() returns Ok with the number or Err when the text is not a number, and match handles both cases. The sample output uses the answers Ada and 36: in the online compiler, type your answers when the prompts appear.
ประเด็นสำคัญ
read_linekeeps the newline: call trim.- parse returns
Ok(number)or Err. - match handles both cases.
ตัวอย่าง Rust ที่รันได้
Rust
main.rs
use std::io;
fn main() {
println!("What is your name?");
let mut name = String::new();
io::stdin().read_line(&mut name).expect("failed to read");
let name = name.trim();
println!("How old are you?");
let mut age = String::new();
io::stdin().read_line(&mut age).expect("failed to read");
match age.trim().parse::<u32>() {
Ok(age) => println!("Hello, {name}! Next year you will be {}.", age + 1),
Err(_) => println!("Hello, {name}! That is not a number."),
}
}
What is your name?
How old are you?
Hello, Ada! Next year you will be 37.ฝึกฝน
เปิดตัวอย่างในคอมไพเลอร์ออนไลน์ ลองเปลี่ยนค่าหรือเพิ่มบรรทัด แล้วทายผลลัพธ์ก่อนกดรัน จากนั้นลองทำให้โค้ดผิดโดยตั้งใจ แล้วอ่านข้อความจากคอมไพเลอร์
เรียนบทนี้จบแล้วใช่ไหม
ทำเครื่องหมายว่าเรียนแล้วเพื่อติดตามความคืบหน้า
ความคืบหน้าของคุณถูกบันทึกไว้ในเบราว์เซอร์นี้ เข้าสู่ระบบเพื่อเก็บไว้ใช้ได้ทุกอุปกรณ์
ฝึกด้วยโจทย์
ใช้สิ่งที่เรียนในบทนี้แก้ปัญหาจริง ทุกโจทย์รันในเบราว์เซอร์ พร้อมการทดสอบทันทีและรีวิวจาก AI
- รวมเฉพาะตัวเลขที่ถูกต้อง บวกค่าที่เป็นจำนวนเต็มและข้ามอย่างอื่นไป เหมือนที่ try/except จัดการอินพุตที่ไม่ถูกต้อง. ง่าย
- Absolute Value Without abs Compute an absolute value with a condition. ง่าย