Fundamentos de Módulos
Parte da seção Object Oriented Programming do Journey de Rust da Coddy — lição 8 de 61.
À medida que seus programas Rust crescem, manter tudo em um único arquivo torna-se complicado. O sistema de módulos do Rust permite que você organize o código movendo structs e suas implementações para arquivos separados.
Para criar um módulo em um arquivo separado, você simplesmente cria um novo arquivo com o nome do módulo desejado. 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 em seu arquivo principal, você o declara com a palavra-chave mod. Isso diz ao Rust para procurar por 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 encontrar 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 unido — a definição da sua struct e todos os seus métodos residem em um arquivo dedicado, enquanto o 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 em 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 Object Oriented Programming
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 Player