Todo programa Rust começa pela função main(). Os arquivos terminam em .rs.
Testar sem instalar nada
Abra o Rust Playground, cole o código da lição no lugar do exemplo e clique em Run.
Instalar
O jeito oficial é o rustup, que instala o compilador (rustc) e o gerenciador de
projetos (cargo).
Linux
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Feche e abra o terminal e confira com rustc --version.
Windows
Baixe o rustup-init.exe em rustup.rs e siga o instalador. Ele
pede as ferramentas de C++ do Visual Studio, que o Rust usa para gerar o executável.
Executar um arquivo
Exemplo básico: Olá, mundo!
Salve como hello.rs. Este programa mostra uma mensagem no terminal.
fn main() {
println!("Olá, mundo!");
}
Na pasta do arquivo, execute no Linux:
rustc --edition=2024 hello.rs
./hello
No Windows, compile com rustc --edition=2024 hello.rs e execute .\hello.exe no PowerShell.
Saída esperada:
Olá, mundo!
Estimar o tempo de uma viagem
Salve o programa como main.rs. O programa divide a distância pela velocidade média. Use ponto nos
decimais. Result representa sucesso ou erro, e ? propaga uma falha de leitura
ou conversão. A estimativa considera velocidade constante e não inclui paradas.
use std::io;
fn read_positive(prompt: &str) -> Result<f64, String> {
println!("{prompt}");
let mut line = String::new();
io::stdin().read_line(&mut line)
.map_err(|_| String::from("Não foi possível ler a entrada."))?;
let value: f64 = line.trim().parse()
.map_err(|_| String::from("Entrada inválida: digite um número."))?;
if !value.is_finite() || value <= 0.0 {
return Err(String::from("Use um número positivo e finito."));
}
Ok(value)
}
fn run() -> Result<(), String> {
let distance = read_positive("Distância em km:")?;
let speed = read_positive("Velocidade média em km/h:")?;
let hours = distance / speed;
let minutes = hours * 60.0;
if !minutes.is_finite() || minutes <= 0.0 {
return Err(String::from("Não foi possível calcular com esses valores."));
}
println!("Tempo estimado: {hours:.2} horas ({minutes:.0} minutos).");
Ok(())
}
fn main() {
if let Err(error) = run() {
eprintln!("{error}");
std::process::exit(1);
}
}
Na pasta do arquivo, execute:
rustc --edition=2024 main.rs
./main
Uma interação no terminal será:
Distância em km:
180
Velocidade média em km/h:
60
Tempo estimado: 3.00 horas (180 minutos).
As linhas com os valores das respostas são digitadas por você. Pressione Enter após cada resposta. As demais linhas são a saída do programa.
No Windows, execute .\main.exe no PowerShell. Para usar Cargo, crie um
projeto com cargo new viagem, coloque o código em src/main.rs e rode cargo run.
Quando o exemplo é só um trecho
Coloque as linhas dentro de fn main() { ... }. Se aparecerem struct, enum ou
outras fn, elas ficam fora do main, no mesmo arquivo.
Erros comuns
cannot assign twice to immutable variableoucannot borrow ... as mutable: a variável precisa delet mutpara ser alterada.borrow of moved value: o valor mudou de dono; use uma referência (&valor) ou.clone().linker 'cc' not foundno Linux: falta o compilador de C que o Rust usa para gerar o executável. Instale comsudo apt install build-essential.- Não existe comando
rust: compile comrustcou usecargo run.