Aprendendo Rust do zero - Hello, World! 🌎
Como escrever e executar seu primeiro pedaço de código em Rust seguindo as boas práticas
Introdução 📝
Esse post faz parte de uma série que estou escrevendo chamada "Aprendendo Rust do zero" onde eu tento resumir o que acho ser importante baseado no livro oficial no site do Rust. Hoje gostaria de abordar como escrever o seu primeiro pedaço de código, como veremos a seguir.
Sumário 📖
- Instalando Rust
- Hello, World! - você está aqui
- Hello, Cargo!
- Variáveis e Mutabilidade
- Tipos de dados
- Funções
- Comentários Simples
- Controle de Fluxo
Hello, World! 🌎
Tradicionalmente quando estamos aprendendo uma nova linguagem de programação o nosso primeiro pedaço de código escrito vai mostrar, após ser executado, em algum lugar na tela a frase: "Hello World". E aqui não seria diferente.
Para o Rust não importa onde seu código esteja armazenado no seu computador, mas escolha um diretório para armazenar esse que vamos escrever agora e os próximos.
Crie um arquivo chamado main.rs
. Arquivos Rust sempre terminam com a extensão .rs (**Atenção, piada ruim a seguir** a gente que é programador brasileiro além de programar que é algo que gostamos, podemos dar uma risadinha ao programar em Rust, rs, entendeu?! 🥴) Se você estiver usando mais de uma palavra para nomear seu arquivo Rust, utilize um underline entre as palavras (conhecido em inglês como underscore). Por exemplo, use hello_world.rs
em vez de helloworld.rs
.
Agora abra o arquivo main.rs
que você acabou de criar e digite:
fn main() {
println!("Hello, world!");
}
Agora que escrevemos nosso código, assim como outras linguagens que são compiladas, é necessário compilar para poder rodar. Vamos executar um comando chamado rustc
(me lembrei da época em que estava aprendendo Java na faculdade e tinha que executar o javac, ainda é assim?)
rustc main.rs
Agora podemos executar nosso programa compilado
./main
No Windows execute o arquivo com a extensão .exe
.\main.exe
Independente do sistema operacional que você esteja utilizando, após executar esses comandos a frase Hello, World!
deve aparecer no seu terminal. Se tudo ocorreu bem e a frase apareceu no seu terminal, parabéns! Você escreveu seu primeiro código em Rust!
Anatomia de um programa Rust 🩺
Vamos revisar em detalhes o que escrevemos no nosso programinha de Hello World. Na primeira parte temos:
fn main() {
}
Essas linhas definem uma função em Rust (lembra um pouco javascript não?). A função main
é especial pois sempre é o primeiro código que roda em cada programa executável feito em Rust. A primeira linha declara uma função chamada main
que não tem nenhum parâmetro e retorna nenhum valor. Se fosse necessário ter algum parâmetro eles deveriam ir dentro dos parênteses ()
.
Perceba também que o escopo do corpo da função está envolvido por chaves {}
. Rust requer que o escopo da função esteja delimitado por chaves. É uma boa prática de estilo que a chave de abertura esteja na mesma linha onde é declarada a função adicionando um epaço entre ambos (a declaração e a primeira chave).
Dentro da função main
está o seguinte código:
println!("Hello, world!");
Essa linha é responsável pelo resultado nesse programa, ela imprime texto na tela. Há quatro detalhes importantes que vamos analisar aqui:
- Em Rust, para identar o código é utilizado quatro espaços e não tab.
- O comando
println!
executa uma macro Rust. Se fosse uma função seria executadoprintln
sem o ponto de exclamação no final. Em um futuro post abordarei a diferença entre macro e funções em Rust. - A string
Hello, world!
é passada como argumento paraprintln!
e o texto é impresso na tela. - A linha é finalizada com um ponto e vírgula
;
indicando que essa acabou e a próxima começa a seguir.
Compilar e Executar são passos separados ⚙️
Nós acabamos de executar um programa criado recentemente, vamos agora examinar cada etapa desse processo.
Antes de executar um programa escrito em Rust é necessário o compilar através do comando rustc
, como podemos ver a seguir:
rustc main.rs
Após compilar o seu código, será gerado um binário e para executar esse binário basta executa-lo:
./main
se estiver no Windows
.\main.exe
Compilar seu código usando rustc
é ok para programas simples, porém conforme for trabalhando em projetos maiores será mais fácil gerenciar todas as opções de configuração e também compartilhar seu código utilizando algum tipo de ferramenta para isso. No próximo post dessa série vamos conhecer a ferramenta Cargo que vai te ajudar a criar programas Rust do mundo real. Cargo é como se fosse o npm do Node.js.
Bônus: Formatar código automaticamente 🎁
Se você assim como eu ja trabalhou com javascript, já deve ter ouvido falar de ferramentas como Prettier e ESLint que além de outras coisas podem formatar o seu código seguindo regras pré-definidas. A equipe por trás do Rust incluiu na instalação padrão do Rust uma ferramenta chamada rustfmt
que formata o estilo do seu código seguindo os padrões definidos para o Rust.
Para utiliza-lo basta executar o comando no arquivo desejado, conforme a seguir:
rustfmt main.rs
Referência 📚
Para escrever esse post e os possíveis próximos que virão, estou utilizando o livro online recomendado no site oficial do Rust, que você pode encontrar em doc.rust-lang.org/book/title-page.html.
Continuação 🆒
No próximo post vamos ver como iniciar, compilar e executar nossos projetos utilizando o Cargo, o gerenciador de dependências de projetos feitos em Rust, ou para os mais íntimos, os crates. Você pode acessar, clicando aqui.