Conceptos básicos de módulos
Parte de la sección Programación Orientada a Objetos del Journey de Rust de Coddy. Lección 8 de 61.
A medida que tus programas de Rust crecen, mantener todo en un solo archivo se vuelve poco práctico. El sistema de módulos de Rust te permite organizar el código moviendo las estructuras y sus implementaciones a archivos separados.
Para crear un módulo en un archivo separado, simplemente crea un archivo nuevo con el nombre de módulo que desees. Por ejemplo, para crear un módulo player, crearías un archivo llamado 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 en tu archivo principal, lo declaras con la palabra clave mod. Esto indica a Rust que busque un archivo con ese nombre:
// main.rs
mod player;
fn main() {
// Ahora podemos acceder a los elementos del módulo player
}
La declaración mod player; indica a Rust que busque e incluya el contenido de player.rs. Piensa en ello como vincular el código de ese archivo a tu programa. El nombre del módulo debe coincidir exactamente con el nombre del archivo (sin la extensión .rs).
Esta separación mantiene unido el código relacionado. La definición de tu estructura y todos sus métodos se encuentran en un archivo específico, mientras que main.rs se centra en el punto de entrada del programa. En la próxima lección, aprenderás a acceder realmente a los elementos que has colocado en los módulos.
Pruébalo tú mismo
Esta lección no incluye un desafío de código.
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Programación Orientada a Objetos
1Métodos y Comportamiento
Intro a Bloques de ImplementaciónEl Parámetro SelfMétodos MutablesFunciones AsociadasMúltiples Bloques de ImplementaciónEncadenamiento de MétodosResumen - Acciones de Rectángulo4Proyecto: Mascota virtual
Definir la mascotaAlimentar a la mascota7Traits estándar
El trait DebugEl trait DisplayClone y CopyTraits de igualdadResumen - Punto imprimible10Proyecto: Sistema de documentos
El Trait DrawComponente de texto2Encapsulamiento y módulos
Conceptos básicos de módulosLa palabra clave PublicCampos privadosGettersSettersRepaso - Casillero seguro5Genéricos
Estructuras genéricasMétodos genéricosMúltiples tipos genéricosFunciones genéricasResumen - Punto de coordenadas8Traits como límites
Sintaxis de límites de traitsLímites múltiplesLa cláusula whereRetornar tipos con traitsResumen: Impresora genérica11Patrones de diseño en Rust
Patrón NewtypeComposiciónEl Trait DropFrom e IntoResumen - Mock de Smart Pointer3Enums avanzados
Enums con datosMétodos en EnumsCoincidencia de variantes de datosEl Enum Option revisitadoResumen - Enum Shape6Definición de Traits
¿Qué es un Trait?Implementación de TraitsImplementaciones por defectoSobrescribir valores por defectoTraits con parámetrosResumen - Reproductor multimediaPractica por tu cuenta: Compilador de Rust online