Módulos e mod
Organize o código
Módulos e mod é uma aula grátis de Learn Rust Coding no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Learn Rust Coding, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Learn Rust Coding inclui 4 aulas no total.
Por que usar módulos?
À medida que os programas crescem, colocar tudo em um único arquivo fica confuso. Os módulos permitem agrupar código relacionado, controlar o que é público e evitar conflitos de nomes.
A palavra-chave mod declara um módulo.
Declarando um módulo embutido
Você pode definir um módulo diretamente dentro de um arquivo com mod name { ... }. Tudo o que estiver entre as chaves pertencerá a esse módulo.
mod greetings {
fn hello() {
println!("hello from the module");
}
}
fn main() {
println!("module declared above");
}Chamando funções de módulos
Os itens dentro de um módulo são privados por padrão. Para chamar um deles de fora, ele precisa ser pub, e você deve referenciá-lo usando o caminho do módulo com ::.
mod greetings {
pub fn hello() {
println!("hello!");
}
}
fn main() {
greetings::hello();
}Módulos aninhados
Os módulos podem conter outros módulos, formando uma árvore. O caminho lista cada nível separado por ::.
mod app {
pub mod ui {
pub fn draw() {
println!("drawing ui");
}
}
}
fn main() {
app::ui::draw();
}Módulos agrupam mais do que funções
Um módulo pode conter funções, estruturas, enumerações, constantes e até outros módulos. Isso mantém tipos e comportamentos relacionados juntos.
mod shapes {
pub struct Circle {
pub radius: f64,
}
pub const PI: f64 = 3.14159;
}
fn main() {
let c = shapes::Circle { radius: 2.0 };
println!("area = {}", shapes::PI * c.radius * c.radius);
}A árvore de módulos
Todo crate tem um módulo raiz. Os módulos que você declara formam uma árvore abaixo dele. Os caminhos descrevem onde um item está localizado, de modo semelhante às pastas em um sistema de arquivos.
super: o módulo pai
Dentro de um módulo, super se refere ao módulo pai. Ele permite que um módulo filho chame algo definido um nível acima.
fn top_level() {
println!("called via super");
}
mod inner {
pub fn run() {
super::top_level();
}
}
fn main() {
inner::run();
}self: o módulo atual
self se refere ao módulo atual. Ele é usado principalmente para deixar explícito onde um item está localizado dentro de um caminho.
mod tools {
pub fn helper() {
println!("helper running");
}
pub fn run() {
self::helper();
}
}
fn main() {
tools::run();
}Módulos em arquivos separados
Além dos módulos embutidos, mod network; (com ponto e vírgula e sem corpo) informa ao Rust que carregue o conteúdo de network.rs ou network/mod.rs.
É assim que projetos reais dividem o código entre arquivos, mantendo uma única árvore de módulos.
Limites de privacidade
Os módulos formam limites de privacidade. Um módulo filho pode ver os itens privados de seus ancestrais, mas os pais não podem acessar os itens privados de um filho.
Esse encapsulamento mantém os detalhes internos ocultos.
mod bank {
fn secret() -> i32 { 42 }
pub fn reveal() -> i32 { secret() }
}
fn main() {
println!("{}", bank::reveal());
}Organizando projetos reais
Use módulos para refletir seu domínio: auth, db, handlers. Mantenha cada um focado, exponha uma pequena superfície pública e oculte o restante.
Limites claros entre módulos tornam grandes bases de código mais fáceis de navegar.
Verificação rápida
Teste seus conhecimentos sobre módulos.
Recapitulação
Você aprendeu a organizar código com módulos:
mod name { ... }declara um módulo embutido- Os itens são privados por padrão; use
pubpara expô-los - Os caminhos usam
::para percorrer a árvore de módulos super,selfemod name;permitem navegar e dividir módulos
Perguntas Frequentes
A aula “Módulos e mod” é grátis?
Sim — o texto completo de “Módulos e mod” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Learn Rust Coding, atualize para CoddyKit PRO. O curso de Learn Rust Coding inclui 4 aulas no total.
O que vou aprender em “Módulos e mod”?
Organize o código Você pratica Learn Rust Coding com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Learn Rust Coding?
Nenhuma experiência prévia é necessária. Learn Rust Coding no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.
Quanto tempo leva a aula “Módulos e mod”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Learn Rust Coding?
Sim. Cada aula de Learn Rust Coding inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.