# Rust
> [!NOTE] Definição
> Rust é uma linguagem de programação de sistemas que prioriza desempenho, segurança de memória e concorrência. Pode ser instalada via `rustup` seguindo as instruções na [página "Começar" do site do Rust](https://www.rust-lang.org/learn/get-started) ou diretamente de [rustup.rs](https://rustup.rs). A documentação completa está disponível no [site de documentação do Rust](https://doc.rust-lang.org/).
# Introdução
[Rust](https://www.rust-lang.org/) é uma linguagem compilada antecipadamente (ahead-of-time). Isso significa que, quando você deseja executar um programa Rust, primeiro precisa compilar seu código-fonte usando o compilador Rust, `rustc`. Esse processo de compilação traduz seu código Rust em código de máquina que seu computador pode executar diretamente.
Para criar um arquivo-fonte em Rust, você deve nomeá-lo com a extensão `.rs` (por exemplo, `main.rs` ou `my_program.rs`). Se você usar várias palavras no nome do arquivo, a convenção é separá-las com sublinhados.
Para compilar um arquivo Rust simples, você usaria o comando `rustc <filename>.rs` em seu terminal (substituindo `<filename>.rs` pelo nome real do seu arquivo, como `rustc main.rs`). Isso produzirá um arquivo executável (por exemplo, `main` no Linux/macOS ou `main.exe` no Windows). Você pode então executar este executável diretamente digitando seu nome no terminal (por exemplo, `./main` ou `.\main.exe`).
Para a maioria dos projetos Rust, você usará o Cargo, o sistema de construção e gerenciador de pacotes do Rust. Com o Cargo, você pode criar um novo projeto usando `cargo new <project_name>`. Para compilar seu projeto, você navega até o diretório do projeto e executa `cargo build`. Para compilar e, em seguida, executar imediatamente seu projeto, você pode usar o comando `cargo run`. O Cargo lida com as etapas de compilação para você e coloca o executável resultante em um diretório `target/debug` dentro do seu projeto.
**:: Referência ::** [Rust Programming Language](https://www.rust-lang.org/)
**:: Referência ::** [Install Rust - Rust Programming Language](https://www.rust-lang.org/tools/install)
# Coisas Divertidas sobre Rust
![[Ferris mascot.png]]
- Programadores Rust são chamados de Rustaceans
- Ferris é o mascote não oficial do Rust.
- Use `snake_case` para nomes de arquivos com várias palavras em Rust.
# Códigos Rust
- Códigos básicos
- [[Um jogo de adivinhação em Rust]]
- [[Converting Celsius to Fahrenheit in Rust]]
# Conceitos
- [[Cargo para Rust]]
- [[Rust é uma linguagem compilada antecipadamente]]
- [[Palavras reservadas no Rust]]
- [[Regras de propriedade no Rust]]
- [[Escopo de variáveis no Rust]]
- [[String type in Rust]]
- [[Moving variables in Rust]]
- [[Clonando variáveis no Rust]]
- [[Copiando no Rust]]
- Variáveis
- [[Variáveis em Rust]]
- [[Sombreamento no Rust]]
- [[Tipos de dados em Rust]]
- Funções
- [[Functions in Rust]]
- [[Statements vs expressions in Rust]]
- Fluxo de controle
- [[Conditions in Rust]]
- [[Loops in Rust]]
# Referências
- [The Rust Programming Language - The Rust Programming Language](https://doc.rust-lang.org/book/) - O livro oficial da linguagem Rust.
- [Getting Started - The Cargo Book](https://doc.rust-lang.org/cargo/getting-started/index.html) - Livro sobre o compilador/construtor [[Cargo para Rust]]
- [Rustfully - YouTube](https://www.youtube.com/@Rustfully) - Canal no Youtube dedicado a tutoriais da linguagem.