Módulos y mod
Organizar el código
Módulos y mod es una lección gratuita de Learn Rust Coding en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Learn Rust Coding, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Learn Rust Coding incluye 4 lecciones en total.
¿por qué usar módulos?
A medida que los programas crecen, incluirlo todo en un solo archivo se vuelve complicado. Los módulos permiten agrupar código relacionado, controlar qué es público y evitar conflictos de nombres.
La palabra clave mod declara un módulo.
declarar un módulo en línea
Puede definir un módulo directamente dentro de un archivo con mod name { ... }. Todo lo que se encuentra entre las llaves pertenece a ese módulo.
mod greetings {
fn hello() {
println!("hello from the module");
}
}
fn main() {
println!("module declared above");
}llamar a funciones de módulos
Los elementos de un módulo son privados de forma predeterminada. Para llamar a uno desde fuera, debe ser pub y debe referenciarlo mediante la ruta del módulo usando ::.
mod greetings {
pub fn hello() {
println!("hello!");
}
}
fn main() {
greetings::hello();
}módulos anidados
Los módulos pueden contener otros módulos y formar un árbol. La ruta enumera cada nivel, separado por ::.
mod app {
pub mod ui {
pub fn draw() {
println!("drawing ui");
}
}
}
fn main() {
app::ui::draw();
}los módulos agrupan más que funciones
Un módulo puede contener funciones, estructuras, enumeraciones, constantes e incluso otros módulos. Así mantiene juntos los tipos y comportamientos relacionados.
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);
}el árbol de módulos
Cada crate tiene un módulo raíz. Los módulos que declara forman un árbol debajo de él. Las rutas describen dónde vive un elemento, de forma similar a las carpetas de un sistema de archivos.
super: el módulo principal
Dentro de un módulo, super hace referencia al módulo principal. Permite que un módulo hijo llame a algo definido un nivel más arriba.
fn top_level() {
println!("called via super");
}
mod inner {
pub fn run() {
super::top_level();
}
}
fn main() {
inner::run();
}self: el módulo actual
self hace referencia al módulo actual. Se usa principalmente para indicar explícitamente dónde se encuentra un elemento dentro de una ruta.
mod tools {
pub fn helper() {
println!("helper running");
}
pub fn run() {
self::helper();
}
}
fn main() {
tools::run();
}módulos en archivos separados
Además de los módulos en línea, mod network; —con punto y coma y sin cuerpo— indica a Rust que cargue el contenido desde network.rs o network/mod.rs.
Así es como los proyectos reales dividen el código entre archivos sin dejar de mantener un único árbol de módulos.
límites de privacidad
Los módulos forman límites de privacidad. Un módulo hijo puede ver los elementos privados de sus antecesores, pero los módulos principales no pueden acceder a los elementos privados de sus hijos.
Esta encapsulación mantiene ocultos los detalles internos.
mod bank {
fn secret() -> i32 { 42 }
pub fn reveal() -> i32 { secret() }
}
fn main() {
println!("{}", bank::reveal());
}organizar proyectos reales
Use módulos que reflejen su dominio: auth, db, handlers. Mantenga cada uno centrado, exponga una superficie pública pequeña y oculte el resto.
Unos límites claros entre módulos facilitan la navegación por bases de código grandes.
comprobación rápida
Compruebe sus conocimientos sobre módulos.
repaso
Ha aprendido a organizar el código con módulos:
mod name { ... }declara un módulo en línea- Los elementos son privados de forma predeterminada; use
pubpara exponerlos - Las rutas usan
::para recorrer el árbol de módulos super,selfymod name;permiten desplazarse por los módulos y dividirlos
Preguntas frecuentes
¿La lección «Módulos y mod» es gratis?
Sí — el texto completo de «Módulos y mod» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Learn Rust Coding, actualiza a CoddyKit PRO. El curso de Learn Rust Coding incluye 4 lecciones en total.
¿Qué aprenderé en «Módulos y mod»?
Organizar el código Practicas Learn Rust Coding con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Learn Rust Coding?
No se requiere experiencia previa. Learn Rust Coding en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.
¿Cuánto tiempo toma la lección «Módulos y mod»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Learn Rust Coding?
Sí. Cada lección de Learn Rust Coding incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Módulos y mod
- pub y visibilidad
- use y rutas
- Crates y raíz del crate