Menu
Coddy logo textTech

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.

Folha de consulta

Para organizar o código em arquivos separados, crie um arquivo de módulo com o nome desejado. Por exemplo, player.rs:

// player.rs
struct Player {
    name: String,
    score: u32,
}

impl Player {
    fn new(name: String) -> Player {
        Player { name, score: 0 }
    }
}

Para usar o módulo em seu arquivo principal, declare-o com a palavra-chave mod:

// main.rs
mod player;

fn main() {
    // O conteúdo do módulo agora está disponível
}

A declaração mod player; diz ao Rust para encontrar e incluir player.rs. O nome do módulo deve corresponder exatamente ao nome do arquivo (sem a extensão .rs).

Experimente você mesmo

Esta lição não inclui um desafio de código.

quiz iconTeste seus conhecimentos

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