Resumen - Crear un Struct de Libro
Parte de la sección Logic & Flow del Journey de Rust de Coddy — lección 26 de 66.
Desafío
FácilRecibirás cuatro entradas: el título de un libro, el nombre de un autor, un año de publicación (como un entero) y un número de páginas (como un entero). Define una estructura Book con cuatro campos: title de tipo String, author de tipo String, year de tipo i32 y pages de tipo i32. Crea una instancia de esta estructura utilizando los valores de entrada e imprime la información del libro.
Requisitos:
- Definir una estructura
Bookcon los campos:title: String,author: String,year: i32ypages: i32 - Leer la primera entrada como el título del libro
- Leer la segunda entrada como el nombre del autor
- Leer la tercera entrada y convertirla a
i32para el año de publicación - Leer la cuarta entrada y convertirla a
i32para el número de páginas - Crear una instancia de la estructura
Bookcon estos valores - Imprimir la información del libro en el formato exacto que se muestra a continuación
Entrada:
- Primera línea: Título del libro (por ejemplo,
The Rust Programming Language) - Segunda línea: Nombre del autor (por ejemplo,
Steve Klabnik) - Tercera línea: Año de publicación como un entero (por ejemplo,
2018) - Cuarta línea: Número de páginas como un entero (por ejemplo,
552)
Salida:
- Primera línea:
Book: [title] - Segunda línea:
Author: [author] - Tercera línea:
Year: [year] - Cuarta línea:
Pages: [pages]
Pruébalo tú mismo
use std::io;
// TODO: Define la estructura Book aquí con los campos: title, author, year y pages
fn main() {
// Leer el título del libro
let mut title = String::new();
io::stdin().read_line(&mut title).expect("Failed to read line");
let title = title.trim().to_string();
// Leer el nombre del autor
let mut author = String::new();
io::stdin().read_line(&mut author).expect("Failed to read line");
let author = author.trim().to_string();
// Leer el año de publicación
let mut year_input = String::new();
io::stdin().read_line(&mut year_input).expect("Failed to read line");
let year: i32 = year_input.trim().parse().expect("Failed to parse year");
// Leer el número de páginas
let mut pages_input = String::new();
io::stdin().read_line(&mut pages_input).expect("Failed to read line");
let pages: i32 = pages_input.trim().parse().expect("Failed to parse pages");
// TODO: Crear una instancia de la estructura Book usando los valores de entrada
// TODO: Imprimir la información del libro en el formato requerido
}Todas las lecciones de Logic & Flow
1Flujo de control avanzado
La expresión 'match'Coincidencia de múltiples valoresCoincidencia de rangosLa expresión 'if let'Bucles como expresionesResumen - Analizador de comandos simple4Agrupando datos con Structs
¿Qué es un Struct?Visión general de los StructsAcceso a los campos de un StructStructs mutablesStructs como parámetros de funcionesStructs de tuplaResumen - Crear un Struct de Libro7Manejo de errores con 'Result'
¿Qué es un 'Result'?Uso de 'match' con 'Result'is_ok() e is_err()Atajos: unwrap y expectEl operador de signo de interrogación '?'Parsing de Strings a númerosResumen - Función de división segura10Closures y funciones anónimas
¿Qué es un Closure?Definir un Closure simpleClosures con parámetrosCapturar el entornoResumen - Closure sumador simple2Introducción a los vectores
¿Qué es un vector?Crear un vectorAñadir elementos con pushAcceder a los elementos de un vectorIterar sobre un vectorIteración mutableEliminar elementosResumen: Rastreador de puntuación básico5Pares clave-valor con Hash Maps
¿Qué es un Hash Map?Crear un Hash MapInsertar pares clave-valorAcceder a los valoresIterar sobre un Hash MapActualizar un valorEliminar un parRepaso: Contador de palabras8Proyecto: Inventario simple de artículos
Configuración del proyectoAgregar un artículoVerificar el stockVender un artículoUniendo todo3Lista de tareas en la línea de comandos
Configuración del proyectoAñadir una tareaVer todas las tareasEliminar una tareaCódigo final