Como executar

Como executar Rust

Trilha de Rust →

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 variable ou cannot borrow ... as mutable: a variável precisa de let mut para ser alterada.
  • borrow of moved value: o valor mudou de dono; use uma referência (&valor) ou .clone().
  • linker 'cc' not found no Linux: falta o compilador de C que o Rust usa para gerar o executável. Instale com sudo apt install build-essential.
  • Não existe comando rust: compile com rustc ou use cargo run.