En Rust, los structs (estructuras) son una forma de agrupar datos relacionados bajo un mismo nombre. Los structs son similares a las clases en otros lenguajes de programación, pero sin métodos asociados. En esta lección, aprenderemos cómo definir y usar structs en Rust.
¿Qué es un Struct?
Un struct es una colección de valores, cada uno de los cuales se llama campo. Los structs permiten agrupar datos que están relacionados lógicamente. Por ejemplo, podríamos tener un struct Usuario
que agrupe información sobre un usuario, como su nombre, edad y dirección de correo electrónico.
Definiendo un Struct
Para definir un struct en Rust, utilizamos la palabra clave struct
seguida del nombre del struct y una lista de campos entre llaves {}
. Cada campo tiene un nombre y un tipo.
Ejemplo Básico
En este ejemplo, hemos definido un struct llamado Usuario
con tres campos: nombre
, edad
y email
.
Creando una Instancia de un Struct
Para crear una instancia de un struct, utilizamos la sintaxis de inicialización de struct, que consiste en el nombre del struct seguido de una lista de campos y valores entre llaves {}
.
fn main() { let usuario1 = Usuario { nombre: String::from("Alice"), edad: 30, email: String::from("[email protected]"), }; println!("Nombre: {}, Edad: {}, Email: {}", usuario1.nombre, usuario1.edad, usuario1.email); }
Accediendo a los Campos de un Struct
Podemos acceder a los campos de un struct utilizando la notación de punto (.
).
fn main() { let usuario1 = Usuario { nombre: String::from("Alice"), edad: 30, email: String::from("[email protected]"), }; println!("Nombre: {}", usuario1.nombre); println!("Edad: {}", usuario1.edad); println!("Email: {}", usuario1.email); }
Mutabilidad de los Campos
Para modificar los campos de un struct, necesitamos que la instancia del struct sea mutable. Utilizamos la palabra clave mut
para hacer que una instancia sea mutable.
fn main() { let mut usuario1 = Usuario { nombre: String::from("Alice"), edad: 30, email: String::from("[email protected]"), }; usuario1.edad = 31; println!("Edad actualizada: {}", usuario1.edad); }
Ejercicio Práctico
Ejercicio 1: Definir y Usar un Struct
-
Define un struct llamado
Libro
con los siguientes campos:titulo
de tipoString
autor
de tipoString
paginas
de tipou32
-
Crea una instancia de
Libro
y asigna valores a sus campos. -
Imprime los valores de los campos del struct
Libro
.
Solución
struct Libro { titulo: String, autor: String, paginas: u32, } fn main() { let libro1 = Libro { titulo: String::from("El Principito"), autor: String::from("Antoine de Saint-Exupéry"), paginas: 96, }; println!("Título: {}", libro1.titulo); println!("Autor: {}", libro1.autor); println!("Páginas: {}", libro1.paginas); }
Ejercicio 2: Modificar un Campo de un Struct
-
Define un struct llamado
Coche
con los siguientes campos:marca
de tipoString
modelo
de tipoString
kilometraje
de tipou32
-
Crea una instancia mutable de
Coche
y asigna valores a sus campos. -
Modifica el campo
kilometraje
y luego imprime el valor actualizado.
Solución
struct Coche { marca: String, modelo: String, kilometraje: u32, } fn main() { let mut coche1 = Coche { marca: String::from("Toyota"), modelo: String::from("Corolla"), kilometraje: 50000, }; coche1.kilometraje = 55000; println!("Kilometraje actualizado: {}", coche1.kilometraje); }
Conclusión
En esta lección, hemos aprendido cómo definir y usar structs en Rust. Los structs son una herramienta poderosa para agrupar datos relacionados y hacer que nuestro código sea más organizado y legible. En la próxima lección, exploraremos cómo usar structs en combinación con otras características de Rust para crear programas más complejos y robustos.
Curso de Programación en Rust
Módulo 1: Introducción a Rust
- ¿Qué es Rust?
- Configuración del Entorno de Rust
- Programa "Hola, Mundo!"
- Sintaxis y Estructura Básica