# 🎯 Definição > [!Abstract] Definição > Palavras reservadas (ou keywords) são identificadores especiais que o compilador do [[Linguagem Rust|Rust]] utiliza para funcionalidades específicas da linguagem. Elas **não podem ser usadas como nomes** de variáveis, funções, structs ou qualquer outro identificador, pois possuem um significado semântico fixo para o sistema de tipos e controle de fluxo. # 📝 Notas Para facilitar a consulta, as palavras-chave foram agrupadas por categoria funcional: ## 1. Controle de Fluxo e Iteração | Palavra-chave | Descrição | | :--- | :--- | | `if` / `else` | Ramificação condicional. | | `match` | Comparação de padrões (Pattern Matching). | | `loop` | Loop infinito (incondicional). | | `while` | Loop condicional. | | `for` / `in` | Iteração sobre coleções ou implementação de traits. | | `break` / `continue` | Sai de um loop ou pula para a próxima iteração. | | `return` | Retorna um valor de uma função. | ## 2. Declarações e Definições | Palavra-chave | Descrição | | :--- | :--- | | `let` | Vincula um valor a uma variável. | | `fn` | Define uma função ou tipo de ponteiro de função. | | `struct` | Define uma estrutura de dados. | | `enum` | Define uma enumeração. | | `trait` | Define uma interface de comportamento. | | `impl` | Implementa funcionalidades para tipos ou traits. | | `const` / `static` | Define itens constantes ou globais. | | `type` | Cria um alias para um tipo existente. | ## 3. Módulos e Visibilidade | Palavra-chave | Descrição | | :--- | :--- | | `mod` | Define um novo módulo. | | `use` | Traz símbolos para o escopo atual. | | `pub` | Torna um item público (visível para outros módulos). | | `crate` | Refere-se à raiz do crate atual. | | `super` | Refere-se ao módulo pai. | | `extern` | Vincula bibliotecas ou funções externas (FFI). | ## 4. Assincronismo e Concorrência | Palavra-chave | Descrição | | :--- | :--- | | `async` | Define um bloco ou função que retorna uma `Future`. | | `await` | Suspende a execução até que uma `Future` seja resolvida. | | `move` | Força um closure a assumir a propriedade (ownership) de suas capturas. | ## 5. Outros Identificadores Especiais - `as`: Realiza conversão de tipos (casting) ou renomeia itens no `use`. - `dyn`: Indica despacho dinâmico para objetos de trait. - `mut`: Denota mutabilidade em referências ou variáveis. - `self` / `Self`: Referem-se à instância atual ou ao tipo que está sendo implementado. - `unsafe`: Delimita blocos de código que ignoram certas verificações de segurança do compilador. - `where`: Adiciona restrições complexas de tipo (generics). - `ref`: Vincula por referência em padrões de busca. > [!Tip] Identificadores Brutos > Se você realmente precisar usar uma palavra reservada como nome (ex: uma [[Interface de Programação de Aplicações|API]] externa que usa `match`), você pode usar o prefixo `r#` (ex: `let r#match = 10;`). # 🔗 Conceitos relacionados - [[Variáveis em Rust]] - [[Tipos de dados em Rust]] - [[Linguagem Rust]] # 📚 Referências - [Keywords - The Rust Reference](https://doc.rust-lang.org/reference/keywords.html) - [Appendix A: Keywords - The Rust Programming Language](https://doc.rust-lang.org/book/appendix-01-keywords.html)