Fundamentos de Módulos
Parte da seção Programação Orientada a Objetos do Journey de Rust da Coddy. Lição 8 de 61.
À medida que seus programas em Rust crescem, manter tudo em um único arquivo se torna inconveniente. O sistema de módulos do Rust permite organizar o código movendo structs e suas implementações para arquivos separados.
Para criar um módulo em um arquivo separado, basta criar um novo arquivo com o nome desejado para o módulo. Por exemplo, para criar um módulo player, você criaria um arquivo chamado player.rs:
// player.rs
struct Player {
name: String,
score: u32,
}
impl Player {
fn new(name: String) -> Player {
Player { name, score: 0 }
}
}
Para usar este módulo no seu arquivo principal, você o declara com a palavra-chave mod. Isso informa ao Rust para procurar um arquivo com esse nome:
// main.rs
mod player;
fn main() {
// Agora podemos acessar itens do módulo player
}
A declaração mod player; diz ao Rust para localizar e incluir o conteúdo de player.rs. Pense nisso como vincular o código desse arquivo ao seu programa. O nome do módulo deve corresponder exatamente ao nome do arquivo (sem a extensão .rs).
Essa separação mantém o código relacionado junto. A definição de struct e todos os seus métodos ficam em um arquivo dedicado, enquanto main.rs permanece focado no ponto de entrada do programa. Na próxima lição, você aprenderá como acessar de fato os itens que colocou nos módulos.
Experimente você mesmo
Esta lição não inclui um desafio de código.
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Programação Orientada a Objetos
1Métodos e Comportamento
Introdução a Blocos de ImplementaçãoO Parâmetro SelfMétodos MutáveisFunções AssociadasMúltiplos Blocos de ImplementaçãoEncadeamento de MétodosRecapitulação - Ações de Retângulo4Projeto: Pet Virtual
Definindo o PetAlimentando o Pet7Traits Padrão
A Trait DebugA Trait DisplayClone e CopyTraits de IgualdadeRecapitulação - Ponto Imprimível10Projeto: Sistema de Documentos
A Trait DrawComponente de Texto2Encapsulamento e Módulos
Fundamentos de MódulosA Palavra-chave PublicCampos PrivadosGettersSettersRecapitulação - Cofre Seguro5Genéricos
Structs GenéricasMétodos GenéricosMúltiplos Tipos GenéricosFunções GenéricasRecapitulação - Ponto de Coordenada8Traits como Restrições
Sintaxe de Restrições de TraitRestrições MúltiplasA Cláusula WhereRetornando Tipos com TraitsRecapitulação - Impressora Genérica11Padrões de Projeto em Rust
Padrão NewtypeComposiçãoA Trait DropFrom e IntoRecapitulação - Mock de Smart Pointer3Enums Avançados
Enums com DadosMétodos em EnumsCorrespondência de Variantes de DadosO Enum Option RevisitadoRecapitulação - Enum Shape6Definição de Traits
O que é uma Trait?Implementando TraitsImplementações PadrãoSobrescrevendo PadrõesTraits com ParâmetrosRecapitulação - Media PlayerPratique por conta própria: Compilador de Rust online