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
Librocon los siguientes campos:titulode tipoStringautorde tipoStringpaginasde tipou32
-
Crea una instancia de
Libroy 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
Cochecon los siguientes campos:marcade tipoStringmodelode tipoStringkilometrajede tipou32
-
Crea una instancia mutable de
Cochey asigna valores a sus campos. -
Modifica el campo
kilometrajey 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
