Hello World Rust

Hello, World!

 

 

Que tal  escrevermos um cl√°ssico programa em Rust?

 

Uma coisa legal sobre começar com programas simples é o fato de que você percebe que o seu compilador não está somente instalado como também está funcionando propriamente.

 

A primeira coisa que nós precisamos fazer é criar um local para que possamos organizar nossos códigos. Eu gosto de criar uma pasta projetos dentro da minha pasta home. Lembrando que o Rust não se importa com o local onde o seu código se encontra.

 

Isso nos leva a uma outro detalhe: eu estou  assumindo que voc√™ j√° tem uma certa familiaridade com a linha de comando. Se voc√™ preferir utilizar uma IDE ao inv√©s da linha de comando, voc√™ talvez queira dar uma olhada no SolidOak(https://github.com/oakes/SolidOak ), ou qualquer plugin dispon√≠vel para a sua IDE preferida. Existem por a√≠ um bom n√ļmero de extens√Ķes com qualidade vari√°vel em desenvolvimento por parte da comunidade. A equipe Rust tamb√©m desenvolve plugins para v√°rios editores(https://github.com/rust-lang/rust/blob/master/src/etc/CONFIGS.md ).

 

Dito isso, vamos criar um deretório dentro da nossa pasta projetos.

 

$ mkdir ~/projects

$ cd ~/projects

$ mkdir hello_world

$ cd hello_world

 

Caso você esteja no Windows e não esteja utilizando PowerShell, talvez o ~ não funcione. Consulte a documentação do seu shell para mais detalhes.

 

Vamos criar um arquivo para o nosso código. Nós chamamos nosso arquivo de main.rs. Arquivos Rust são sempre terminados com a extensão .rs. Caso você esteja utilizando mais de uma palavra no nome de seu arquivo, é preferível que você utilize o underscore/underline: hello_world.rs ao invés de concatenar tudo como: helloword.rs. No mundo rust isso é chamado de snake_case.

 

Agora que você já tem o seu arquivo abra-o e digite o seguinte código:

 

fn main() {

println!("Hello, world!");

}

 

Salve o arquivo e digite o seguinte no seu terminal:

 

$ rustc main.rs

$ ./main # ou main.exe no Windows

Hello, world!

 

Sucesso!

 

Agora, como diria Jack: "Vamos por partes...".

 

fn main() {

 

}

 

Estas linhas definem uma fun√ß√£o em Rust. A fun√ß√£o main √© de fato especial: ela √© o come√ßo de todo programa feito em Rust. Essas primeiras linhas dizem ‚ÄúEu estou declarando uma fun√ß√£o chamada main que n√£o possui nenhum argumento e n√£o retorna valor nenhum.‚ÄĚ Caso tivesse argumentos eles estariam dentro dos par√™nteses (( )), e como n√£o estamos retornando nada n√≥s podemos omitir o tipo de retorno inteiramente. Falaremos mais sobre isso em tutoriais futuros.

 

Voc√™ tamb√©m deve notar que a fun√ß√£o √© envolta por chaves ({ }). Rust exige chaves em volta do escopo das fun√ß√Ķes. Tamb√©m √© considerado uma boa pr√°tica abrir chaves na mesma linha onde foi declarada a fun√ß√£o.

 

Próxima linha:

 

println!("Hello, world!");

 

Esta linha faz todo o trabalho do nosso pequeno programa. Existem in√ļmeros detalhes importantes nela. Lembre-se de configurar o seu editor para que utilize quatro espa√ßos para fazer a identa√ß√£o. √Č disponibilizado v√°rias configura√ß√Ķes para alguns editores (https://github.com/rust-lang/rust/blob/master/src/etc/CONFIGS.md).

 

O segundo ponto é a parte do println!( ).

Este trecho de código chama uma macro(http://doc.rust-lang.org/book/macros.html) Rust, que é a forma como Rust realiza a metaprogramação. Se ao invés de uma macro fosse uma função, teríamos algo como: println( ). Para o nosso propósito aqui, nós não precisamos nos preocupar com essa diferença. Apenas saiba que algumas vezes você irá ver ' ! ', o que indica uma chamada de macro e não uma chamada de função normal. Rust implementa println!( ) como uma macro e não como uma simples função por alguns bons motivos, contudo, como dito, não se faz necessário explicar agora.

Uma √ļltima ressalva:se voc√™ j√° usou macros em outras linguagens como C/C++, voc√™ ver√° que as macros do Rust s√£o bastante diferentes. N√£o fique assustado com as macros. N√≥s vamos entendendo melhor ao longo dos pr√≥ximos tutoriais.

 

Próximo, "Hello, world!" é uma 'string'. Strings são geralmente bastante complicadas em uma 'system language', e ainda mais, temos uma string estáticamente alocada. Caso você queira ler mais sobre alocação, confira este link: http://doc.rust-lang.org/book/the-stack-and-the-heap.html, mas por hora não se faz necessário.

Voltando, nós passamos a nossa string como um argumento para a macro println!, que por sua vez imprime na tela a nossa 'string'. Fácil!

 

Finalmente, a nossa linha de c√≥digo termina com um ponto e v√≠rgula ( ; ). Rust √© uma linguagem orientada √† express√Ķes, o que significa que a maior parte da linguagem s√£o express√Ķes e n√£o apenas declara√ß√Ķes. O ; √© usado para indicar que uma express√£o terminou e que a pr√≥xima est√° prestes a come√ßar. A grande maioria das linhas de c√≥digo em Rust acabar√£o com ;.

 

Por fim, compilar e executar.

Para compilar usamos o nosso compilador rustc e em seguida passamos o nome do nosso arquivo:

 

$ rustc main.rs

 

Caso você tenha experiência com C/C++ verá que existe semelhança com o gcc e clang. Após o comando, Rust gerará um binário executável. Podemos vê-lo utilizando o comando ls:

 

$ ls

mainmain.rs

 

No Windows:

$ dir

main.exemain.rs

 

Agora temos dois arquivos, o nosso código com a extensão .rs e o executável(main.exe para Windows ou main para os demais).

 

$ ./main # or main.exe on Windows

 

O comando acima exibe a nossa string hello, world! no terminal.

 

Caso voc√™ venha de alguma linguagem din√Ęmica como Ruby, Python ou Javascript √©poss√≠vel que voc√™ nunca tenha feito esses dois passos anteriores em separado. Rust √© uma linguagem ‚Äúanteriormente compilada‚ÄĚ, o que significa que voc√™ pode compilar um programa e compartilhar com algu√©m que n√£o tenha Rust instalado e essa pessoa ir√° conseguir executar numa boa. Agora, se voc√™ compartilhar um arquivo .rb ou .py ou .js a pessoa com quem voc√™ compartilhou precisar√° ter Ruby/Python/Javascript instalado, em contra-partida com estas linguagens voc√™ compila e roda em um √ļnico comando. Tudo √© uma quest√£o de escolha quando se trata de padr√Ķes de linguagem e Rust fez as dele.

 

Parabéns! Você oficialmente escreveu seu primeiro programa em Rust. Isso lhe torna um programador Rust! Bem-vindo!!!