curso en Rust Skill Tree
Laboratorios de Práctica de Rust
Principiante
Este curso contiene muchos laboratorios para Rust. Cada laboratorio es un pequeño proyecto de Rust con una guía detallada y soluciones. Puedes practicar tus habilidades en Rust completando estos laboratorios, mejorar tus habilidades de codificación y aprender cómo escribir código limpio y eficiente.
linux
💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí
- Introducción
- Programa
Definiendo Módulos para Controlar el Alcance y la Privacidad
Refutabilidad en la coincidencia de patrones de Rust
Programación metaprogramada en Rust con macros
Deshabilitar advertencias de código no utilizado en Rust
Compilación de funciones condicionales en Rust
Conceptos de Lifetime en el Programa de Rust
Lenguajes Específicos de Dominio
Interfaces Variádicas en el Programa de Rust
Espaciado de nombres en Rust con la declaración use
Declaración de enlaces de variables en Rust
Fundamentos de la Programación en Rust: Enlaces de Variables y Expresiones
Enlaces de variables mutables en Rust
Vinculación de datos inmutables en Rust
Retornar desde Bucles
Un Programa de Ejemplo que Utiliza Estructuras
Controlar cómo se ejecutan las pruebas
Elisión de Tiempo de Vida del Verificador de Préstamos de Rust
Enlaces de variables y inferencia de tipos en Rust
Anidación y Etiquetas
Programación de bucles FizzBuzz en Rust
Flujo de control conciso con if let
Exploración de constantes en Rust
Creando una biblioteca
Repetición de macros en Rust
Explorando los bucles infinitos en Rust
Literales y especificación de tipos en Rust
Demostración de Propiedad y Mutabilidad en Rust
Sobrecarga de macros de Rust con macro_rules!
Errores Irrecuperables con Panic
Desestructuración y Desreferenciación en Rust
Explorando los Espacios de Trabajo de Cargo en Rust
Gestión de lifetimes en structs de Rust
La anotación de períodos de vida en los tratos de Rust
Abort y Desenrollar
Atributos de Cargo en el Desarrollo de Rust
Compilación condicional con el atributo cfg de Rust
Ámbito y Sombreado
Desestructuración de Tuplas en Rust
Leyendo un archivo
¿Qué es la propiedad?
El Tipo de Rebanada
Tipos Imprimibles en la Biblioteca Estándar de Rust
Esperando la finalización del proceso hijo
Desestructuración de structs en Rust con coincidencia de patrones
Validando Referencias con Lifetimes
Ejemplos de Uso de Enum en Rust
Rust Lifetime Annotations Borrow Checker
Exploración de la Coerción de Vida útil en Rust
Exploración de los Tipos Primitivos de Rust
Límites de período de vida y rasgos en Rust
Rust Closures con Restricciones Genéricas
Exploración de múltiples límites en Rust
Concurrencia de Estado Compartido en Rust
Definición e instanciación de estructuras
Documentando proyectos de Rust con Markdown
Gestión de dependencias de Cargo en Rust
Publicar una caja en Crates.io
Préstamo mutable en el libro de Rust
Personalizar la salida de structs en Rust con fmt::Display
Desestructuración de Arrays y Slices en Rust
Como parámetros de salida
Generar hilos nativos en Rust
Desestructuración y uso de enums en Rust
Tipos de Comentarios y Documentación en Rust
Bucles y rangos en Rust
El patrón ref
Alias para Result
Explorando las capacidades funcionales de Rust
Manejo de errores con retornos tempranos en Rust
Referencias y Préstamo
Ejemplo de Manejo de Errores con Panic en Rust
Exploración de la Visibilidad de Módulos en Rust
Varios tipos de error
Traer Rutas al Alcance con la Palabra Clave use
Alias en Rust: Mejora la legibilidad del código
Explorando los Closures de Rust y la Captura de Entorno
Option & Unwrap
Ejecución de Procesos Hijos en Rust
Exploración del concepto de alias en Rust
Usando hilos para ejecutar código simultáneamente
Herencia y composición de rasgos en Rust
Manejo encadenable de Option con and_then()
Los closures como parámetros de función
Explorando el Tipo Result de Rust
La Declaración Use
Aceptando Argumentos de Línea de Comandos
Mensajes de error de Rust al error estándar
Explorando el mecanismo de conteo de referencias de Rust
Accediendo a los argumentos de línea de comandos en Rust
Práctica de Sintaxis de Patrones en Rust
Explorando los Tipos y Aplicaciones de Estructuras en Rust
Idioma de Nuevo Tipo
Paquetes y Cajas
Generación y prueba de documentación de Cargo
La Estructura de Control de Flujo match
Almacenar pares clave-valor con mapas hash de Rust
Usando Box<T> para Datos en el Montón
Rc<T>, el puntero inteligente con conteo de referencias
Funciones avanzadas y Cierres
Clonación de structs en Rust con el trato Clone
Separando Módulos en Diferentes Archivos
Explorando tuplas de Rust y transponiendo matrices
Organización de archivos modular en Rust
Firmas de funciones en Rust con tiempos de vida
Explorando las Operaciones no Seguras de Rust
Usando una biblioteca
Tratar Punteros Inteligentes Como Referencias Regulares
Factorizando la Repetición con Macros de Rust
Práctica de Sintaxis de Métodos en Rust
Introducción a los Designadores de los Macros de Rust
Enlace y Desestructuración en Rust
Tipos de claves alternativas/personalizadas
Conversiones a y desde cadenas
Exploración de la coincidencia de patrones en Rust
Super y Self
Box, Pila y Montón
Fundamentos de Pruebas de Software en Rust
Literales y Operadores
Iterando sobre Resultados
Impresión Formateada en Rust
Almacenar listas de valores con vectores
Manejo de errores en Rust con el signo de interrogación
Funcionalidad de la biblioteca de Rust con Desarrollo Guiado por Pruebas
Lectura eficiente de archivos en Rust
Map para Result
Construyendo un servidor web de un solo hilo
Fundamentos del préstamo de propiedad en Rust
Coincidencia de patrones concisa en Rust con Let-Else
Explorando los rasgos de Rust para métodos personalizados
Ejemplo avanzado de inferencia de tipos en Rust
Transferencia de datos concurrente con canales de Rust
Rutas en el Árbol de Módulos de Rust
Propiedad Compartida con Arc de Rust
Almacenar texto codificado en UTF-8 con cadenas
Laboratorio del Libro de Rust: Pruebas Unitarias e Integrales
Escribir funciones en Rust
Operaciones del sistema de archivos en Rust
Iteración concisa de Option en Rust con While Let
Sacando Resultados de Opciones
Explorando las operaciones de HashSet en Rust
Análisis de argumentos de línea de comandos en Rust
Definir funciones genéricas en Rust
Instrucciones Condicionales en Rust
Explorando la funcionalidad de genéricos en Rust
Introducción a los Identificadores Crudos de Rust
Parámetros de Tipo Fantasma
Errores Recuperables con Result
Demostración del uso de métodos en Rust
Explorando la estructura inmutable Path de Rust
To Panic or Not to Panic
Cómo escribir pruebas
Implementar el trato genérico de doble desasignación
Explorando el trato Drop de Rust
El operador de Rust simplifica el manejo de errores
Funciones Divergentes en Rust
Visibilidad de los Campos de Structs en Rust
Limpieza con el trato Drop de Rust
Los ciclos de referencia pueden deslevar memoria
Implementar fmt::Display para List en Rust
TryFrom y TryInto
Explorando la función any del iterador de Rust
Restricciones de Tipo de Genéricos en Rust
Caso de prueba: Límites vacíos
Explorando la funcionalidad de impl Trait en Rust
Búsqueda a través de Iteradores
Sobrecarga de operadores en Rust
Implementar un Patrón de Diseño Orientado a Objetos
Interfaz de Funciones Extranjeras
Simplificando el manejo de Option en Rust con Map
Fundamentos del Testing de Integración en Rust
Manejo de errores con Box en Rust
From e Into
Vectores de Rust: Esenciales de los Arrays Redimensionables
Explorando los closures de Rust y el comportamiento de captura
Formateo y rasgo Display en Rust
Explorando el enum Result de Rust
Propiedad y Moves
Manejo de fallos con el enum Option de Rust
Lectura de archivos en Rust
Crear Archivo con la Biblioteca Estándar de Rust
Interacción de Proceso Hijo con Tuberías
Manejo de errores y seguridad de memoria en Rust
Caso de prueba: Aclaración de unidades
Closures: Funciones Anónimas que Capturan su Entorno
Arrays y Slices
Desempaquetar Opciones y Valores Predeterminados
Desambiguación de Rasgos Superpuestos
Procesamiento de datos paralelos en Rust
Implementación de rasgos genéricos de contenedores
Trabajar con Variables de Entorno
Devolviendo traits con Dyn
Explorando la construcción if let de Rust
Desestructuración con Movimiento Parcial en Rust
Fundamentos de Pruebas Unitarias en Rust
Usando Filtros de Coincidencia (Match Guards) en Rust
Objetos de Trato para Valores Heterogéneos
Procesamiento de una serie de elementos con iteradores
Tratos Derivados en Structs de Tupla de Rust
Definiendo un Enum
Definiendo un Tipo de Error
Todos los lugares donde se pueden usar patrones
Explorando los Tipos Asociados de Rust
Implementar Tipos Genéricos en Rust
Casting en Rust: Conversión de Tipo Explícita
Funciones y Métodos Asociados
Gestión de recursos RAII en Rust
Características de los lenguajes orientados a objetos
Explorando el concepto de static en Rust
Refactorización para mejorar la modularidad y el manejo de errores
Implementando Iteradores en Rust
Exploración Avanzada de Traits en Rust
Otros usos de?
Envolver errores con un tipo personalizado
Explorando los conceptos de cadenas en Rust
Como parámetros de entrada
Mejora de nuestro Proyecto de E/S
Traits: Definiendo Comportamiento Compartido
Explorando las superpoderes del Rust inseguro
Tutorial de almacenamiento de datos HashMap en Rust
Genéricos expresivos de Rust con cláusula where
Desempaquetar opciones con?
Eliminación de duplicados mediante la extracción de una función
Práctica de Tipos Avanzados de Rust
Conceptos de Enumerados (enums) y Alias de Tipo en Rust
Implementación de lista enlazada en Rust
Comunicación de canales asincrónicos de Rust
Explorando el uso del ensamblado en línea en Rust
Desarrollo de servidores multihilo en Rust
Exploración de Macros en Rust en LabEx
Apagado y limpieza adecuados
RefCell<T> y el Patrón de Mutabilidad Interior
Profesor
Labby
Labby is the LabEx teacher.
Compartir en Google Classroom
Únete a Nuestro Discord y Aprende Juntos
Únete AhoraReseñas de Usuarios
" Labby répond bien aux questions :)"
— kanzaki
" Muy buena practica, Te lleva a analizar y recordar que comandos utilizar"
— Ian Scuri
Recomendado Para Ti

