Começando com Rust
Vamos colocar o Rust para rodar no seu computador e criar seu primeiro programa. Se preferir não instalar nada por enquanto, você pode acompanhar no Rust Playground e voltar a esta página depois.
Passo 1: instale o Rust com o rustup
Seção intitulada “Passo 1: instale o Rust com o rustup”A forma oficial de instalar o Rust é uma ferramenta chamada rustup. Ela instala o compilador do Rust e a ferramenta de build cargo, e mantém tudo atualizado.
Acesse rustup.rs e siga as instruções para o seu sistema:
-
Windows: baixe e execute o
rustup-init.exee aceite as opções padrão. -
macOS / Linux: cole isto no seu terminal:
Terminal window curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Passo 2: confira se funcionou
Seção intitulada “Passo 2: confira se funcionou”Feche e abra o terminal de novo e rode:
rustc --versioncargo --versionVocê deve ver números de versão como rustc 1.xx.0. Se aparecerem, está tudo pronto.
rustcé o compilador do Rust (ele transforma seu código em um programa).cargoé a ferramenta completa do Rust para compilar, rodar, testar e gerenciar projetos. Você vai usar ocargopara quase tudo.
Passo 3: crie seu primeiro projeto
Seção intitulada “Passo 3: crie seu primeiro projeto”Em vez de criar os arquivos na mão, deixe o cargo montar um projeto para você:
cargo new hello_rustcd hello_rustIsso cria uma pasta chamada hello_rust com tudo o que um projeto Rust precisa:
hello_rust/├── Cargo.toml # configurações e dependências do projeto└── src/ └── main.rs # seu código fica aquiCargo.tomldescreve seu projeto (o nome, a versão e as bibliotecas que ele usa).src/main.rsé o arquivo inicial. Ocargoaté já coloca um Hello World nele para você.
Passo 4: rode o programa
Seção intitulada “Passo 4: rode o programa”De dentro da pasta do projeto, rode:
cargo runVocê vai ver o cargo compilar o projeto e depois imprimir:
Hello, world!Pronto: você acabou de compilar e rodar um programa em Rust.
Entendendo o código
Seção intitulada “Entendendo o código”Abra o src/main.rs e você vai encontrar:
fn main() { println!("Hello, world!");}fn main() { ... }define a função principal. Todo programa em Rust começa a rodar por aqui.println!("...")imprime uma linha de texto na tela.
Experimente mudar a mensagem e rodar cargo run de novo:
fn main() { println!("Olá do meu primeiro programa em Rust!");}Saída:
Olá do meu primeiro programa em Rust!cargo run ou cargo build
Seção intitulada “cargo run ou cargo build”Dois comandos que você vai usar o tempo todo:
| Comando | O que faz |
|---|---|
cargo run |
Compila e roda o programa (o ideal durante o desenvolvimento) |
cargo build |
Só compila; o programa vai para target/debug/ |
cargo build --release |
Compila uma versão otimizada e mais rápida para distribuir |
Quando algo dá errado: lendo os erros do compilador
Seção intitulada “Quando algo dá errado: lendo os erros do compilador”Você vai ver erros do compilador, todo dia, mesmo depois de anos de Rust. Isso não é sinal de que você é ruim nisso. É o compilador fazendo o trabalho dele. Vamos provocar um erro de propósito para que ele assuste menos da primeira vez.
Tire o ! do println! no src/main.rs:
fn main() { println("Hello, world!");}Rode cargo run e você vai ver:
error[E0423]: expected function, found macro `println` --> src/main.rs:2:5 |2 | println("Hello, world!"); | ^^^^^^^ not a function |help: use `!` to invoke the macro |2 | println!("Hello, world!"); | +A mensagem vem em inglês, como todas as do compilador. Leia de cima para baixo:
- A primeira linha diz o que está errado: o Rust esperava uma função (expected function), mas
printlné uma macro (você vai entender o que isso significa na próxima página). --> src/main.rs:2:5diz onde: arquivosrc/main.rs, linha 2, coluna 5.- As marcas
^^^^^^^apontam para o trecho exato do código. - A parte
help:muitas vezes mostra a correção. Aqui ela até marca o!que falta com um+.
Coloque o ! de volta e tudo volta a funcionar:
fn main() { println!("Hello, world!");}Saída:
Hello, world!Passo 5: configure seu editor (recomendado)
Seção intitulada “Passo 5: configure seu editor (recomendado)”Para ter a melhor experiência, instale a extensão rust-analyzer no seu editor. Ela oferece autocompletar, mensagens de erro no próprio código e dicas de tipo enquanto você digita.
- VS Code: instale a extensão rust-analyzer
- A maioria dos outros editores (JetBrains, Neovim etc.) também tem suporte ao rust-analyzer.
Prática
Seção intitulada “Prática”1. Três linhas
Seção intitulada “1. Três linhas”Faça seu programa imprimir três linhas: seu nome, sua comida favorita e Acabei de rodar Rust!. Dica: um println! imprime uma linha, então use três.
Ver solução
fn main() { println!("Meu nome é Ana"); println!("Eu gosto de pizza"); println!("Acabei de rodar Rust!");}Saída:
Meu nome é AnaEu gosto de pizzaAcabei de rodar Rust!2. Um pequeno banner
Seção intitulada “2. Um pequeno banner”Imprima um pequeno banner como o de baixo, com uma linha de sinais = acima e abaixo de um título. Depois quebre o programa de propósito apagando um !, rode cargo run, leia o erro e corrija. Dica: as linhas de = são só texto dentro do println!, como qualquer outra mensagem.
Ver solução
fn main() { println!("=============="); println!(" OLÁ, RUST"); println!("==============");}Saída:
============== OLÁ, RUST==============- Instale o Rust com o
rustuppelo site rustup.rs. - Confira com
rustc --versionecargo --version. - Crie um projeto com
cargo newe rode comcargo run. - Um projeto tem um
Cargo.toml(configurações) e umsrc/main.rs(seu código). - Leia os erros do compilador de cima para baixo: o quê, onde e, muitas vezes, um
help:com a correção. - Instale o rust-analyzer no editor para ter uma experiência bem mais tranquila.
Teste o que aprendeu
Seção intitulada “Teste o que aprendeu”Teste o que aprendeu
1. Qual ferramenta instala o compilador do Rust e o cargo, e mantém os dois atualizados?
2. Qual arquivo descreve o nome, a versão e as dependências de um projeto Rust?
3. Qual comando só compila o programa, sem rodá-lo?
Pontuação: 0 / 3
Para saber mais
Seção intitulada “Para saber mais”- Installation — The Rust Book (em inglês): como instalar em cada plataforma, atualizar com
rustup updatee resolver problemas. - Hello, Cargo! — The Rust Book (em inglês): um olhar mais de perto em
cargo new,cargo build,cargo runecargo check. - First Steps with Cargo — The Cargo Book (em inglês): o que o
cargo newcria e o que significa cada linha doCargo.toml. - The rustup book (em inglês): como instalar toolchains extras, atualizar o Rust e alternar entre stable e nightly.
- rust-analyzer (em inglês): guias de configuração para VS Code, Neovim, Emacs e outros editores.