Fundamentos de 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.
O que você vai aprender
- 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.
Pontos-chave
read_linekeeps the newline: call trim.- parse returns
Ok(number)or Err. - match handles both cases.
Exemplo executável de 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.Pratique
Abra o exemplo no compilador online, mude um valor ou adicione uma linha e tente prever a saída antes de executar. Depois quebre o código de propósito e leia a mensagem do compilador.
Terminou esta lição?
Marque como aprendida para acompanhar seu progresso.
Seu progresso está salvo neste navegador Entre para mantê-lo em todos os dispositivos.
Pratique com um desafio
Use o conteúdo desta lição para resolver um problema real. Cada desafio roda no navegador, com testes instantâneos e uma revisão por IA.
- Somar os números válidos Some as entradas que são números inteiros e ignore todo o resto, do jeito que try/except lida com entrada inválida. Fácil
- Absolute Value Without abs Compute an absolute value with a condition. Fácil