Aprendendo Rust do zero - Hello, World! 🌎

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 📖

  1. Instalando Rust
  2. Hello, World! - você está aqui
  3. Hello, Cargo!
  4. Variáveis e Mutabilidade
  5. Tipos de dados
  6. Funções
  7. Comentários Simples
  8. 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:

  1. Em Rust, para identar o código é utilizado quatro espaços e não tab.
  2. O comando println! executa uma macro Rust. Se fosse uma função seria executado println sem o ponto de exclamação no final. Em um futuro post abordarei a diferença entre macro e funções em Rust.
  3. A string Hello, world! é passada como argumento para println! e o texto é impresso na tela.
  4. 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.