Rust Tutorials

Rust provides a structured approach to learning systems programming and memory safety. Our tutorials cover Rust syntax, ownership concepts, and concurrent programming, suitable for beginners and experienced programmers. Through hands-on labs and practical examples, you'll gain proficiency in writing safe and efficient Rust code. Our Rust playground allows you to experiment with Rust features in real-time.

Tu primer laboratorio de Rust

Tu primer laboratorio de Rust

Hola, bienvenido a LabEx! En este primer laboratorio, aprenderás el programa clásico 'Hola, Mundo!' en Rust.
Rust
Manejo de errores y seguridad de memoria en Rust

Manejo de errores y seguridad de memoria en Rust

En este laboratorio, aprendemos sobre la macro panic! en Rust, que se puede utilizar para generar un error y comenzar a deshacerse de su pila, lo que hace que el programa informe el mensaje de error y salga. La ejecución del programa se encarga de liberar todos los recursos propiedad del hilo llamando al destructor de sus objetos. También examinamos un ejemplo de uso de la macro panic! para manejar la división por cero y verificamos que no se produzcan fugas de memoria utilizando Valgrind.
Rust
Box, Pila y Montón

Box, Pila y Montón

En este laboratorio, se explora el concepto de boxing, asignación en pila y asignación en el montón en Rust. Todos los valores en Rust se asignan en pila por defecto, pero se pueden empaquetar (asignar en el montón) utilizando el tipo Box<T>. Una caja es un puntero inteligente a un valor asignado en el montón, y cuando sale del ámbito, se llama a su destructor y se libera la memoria en el montón. El boxing permite la creación de doble indirección y se puede desreferenciar utilizando el operador *. El laboratorio proporciona ejemplos de código y explicaciones de cómo funciona el boxing y cómo afecta a la asignación de memoria en la pila.
Rust
Entorno de prueba (Playground) de Rust en línea

Entorno de prueba (Playground) de Rust en línea

LabEx ofrece un Entorno de prueba (Playground) de Rust en línea, un entorno basado en la nube que te permite configurar rápidamente un entorno de desarrollo de Rust para aprender y experimentar.
Rust
El operador de Rust simplifica el manejo de errores

El operador de Rust simplifica el manejo de errores

En este laboratorio, se introduce el operador? como una forma de hacer que el código sea más limpio al encadenar resultados. Se utiliza al final de una expresión que devuelve un Result y simplifica el código al manejar automáticamente las ramas Err y Ok. El ejemplo proporcionado demuestra cómo utilizar el operador? en Rust para manejar diversas operaciones matemáticas y sus posibles errores.
Rust
Gestión de recursos RAII en Rust

Gestión de recursos RAII en Rust

En este laboratorio, exploraremos el concepto de RAII en Rust, que fuerza que la adquisición de recursos sea la inicialización. Esto significa que cuando los objetos salen del ámbito, se llaman a sus destructores y se liberan los recursos que poseen, eliminando la necesidad de la gestión manual de memoria y asegurando la protección contra errores de fuga de recursos. También aprenderemos sobre el trato Drop en Rust, que permite implementar lógica de destructor personalizada para los tipos que lo requieren.
Rust
Rust Lifetime Annotations Borrow Checker

Rust Lifetime Annotations Borrow Checker

En este laboratorio, se introduce el concepto de anotaciones de tiempo de vida explícitas en Rust, que son utilizadas por el verificador de préstamos para determinar la validez de las referencias.
Rust
Conceptos de Lifetime en el Programa de Rust

Conceptos de Lifetime en el Programa de Rust

En este laboratorio, exploraremos el concepto de lifetimes en Rust y cómo el compilador los utiliza para garantizar la validez de los préstamos en el código. Los lifetimes son una construcción del compilador que determinan la duración de una variable, desde su creación hasta su destrucción. Si bien los lifetimes y los ámbitos están relacionados, no son lo mismo. Cuando se presta una variable utilizando el operador &, el préstamo tiene un lifetime que se determina por su declaración, y es válido siempre y cuando termine antes de que el prestamista sea destruido. Sin embargo, el ámbito del préstamo se determina por donde se utiliza la referencia. El código de ejemplo proporcionado demuestra cómo se utilizan los lifetimes y los ámbitos en la práctica, con cada variable teniendo su propio lifetime y ámbito.
Rust
El patrón `ref`

El patrón `ref`

En este laboratorio, se explora la palabra clave `ref`, que se utiliza en la coincidencia de patrones o la desestructuración a través de la vinculación `let` para tomar referencias a los campos de un struct/tupla en el lenguaje de programación Rust.
Rust
Préstamo mutable en el libro de Rust

Préstamo mutable en el libro de Rust

En este laboratorio, exploramos la mutabilidad en Rust al examinar el concepto de prestar datos a través de referencias mutables e inmutables, utilizando el ejemplo de una estructura de libro con funciones que demuestran el comportamiento del préstamo mutable e inmutable.
Rust
Fundamentos del préstamo de propiedad en Rust

Fundamentos del préstamo de propiedad en Rust

En este laboratorio, aprendemos sobre el préstamo en Rust, que permite acceder a datos sin tomar posesión mediante el uso de referencias ('&T') en lugar de pasar objetos por valor ('T'). El verificador de préstamos asegura que las referencias siempre apunten a objetos válidos y evita la destrucción de objetos que se están prestando.
Rust
Desestructuración con Movimiento Parcial en Rust

Desestructuración con Movimiento Parcial en Rust

En este laboratorio, aprendemos sobre los movimientos parciales dentro de la desestructuración de una variable única, donde se pueden utilizar simultáneamente los enlaces de patrón de movimiento (`by-move`) y de referencia (`by-reference`). Esto da lugar a un movimiento parcial de la variable, lo que permite que algunas partes se muevan mientras que otras todavía se pueden referenciar. Si una variable padre se mueve parcialmente, no se puede utilizar como un todo después, pero las partes que solo se refieren y no se mueven todavía se pueden utilizar.
Rust
Demostración de Propiedad y Mutabilidad en Rust

Demostración de Propiedad y Mutabilidad en Rust

En este laboratorio, se demuestra la mutabilidad de los datos a través del lenguaje de programación Rust, mostrando cómo la propiedad y la mutabilidad pueden cambiar cuando una caja se mueve de un estado inmutable a un estado mutable.
Rust
Propiedad y Moves

Propiedad y Moves

En este laboratorio, se explica que en Rust, las variables tienen la propiedad de los recursos y solo pueden tener un propietario, lo que evita que los recursos se liberen múltiples veces. Cuando se asignan variables o se pasan argumentos de función por valor, se transfiere la propiedad de los recursos, lo que se conoce como un move. Después del move, el propietario anterior ya no se puede utilizar para evitar la creación de punteros colgantes. El ejemplo de código demuestra estos conceptos mostrando cómo se transfiere la propiedad de variables asignadas en la pila y en el montón y cómo acceder a una variable después de que se haya transferido su propiedad conduce a errores.
Rust
Gestión de lifetimes en structs de Rust

Gestión de lifetimes en structs de Rust

En este laboratorio, tenemos un código Rust que demuestra el uso de lifetimes en structs. El código incluye un struct llamado Borrowed que contiene una referencia a un i32, y la referencia debe sobrevivir al struct mismo. También hay un struct llamado NamedBorrowed con dos referencias a i32, ambas deben sobrevivir al struct. Además, hay un enum llamado Either que puede ser un i32 o una referencia a uno, y la referencia debe sobrevivir al enum. Finalmente, el código crea instancias de estos structs y enum, e imprime su contenido para mostrar el uso de lifetimes en Rust.
Rust
Firmas de funciones en Rust con tiempos de vida

Firmas de funciones en Rust con tiempos de vida

En este laboratorio, se nos presenta la firma de funciones con tiempos de vida en Rust, donde cualquier referencia debe tener un tiempo de vida anotado y cualquier referencia devuelta debe tener el mismo tiempo de vida que una entrada o ser estática. Es importante destacar que no está permitido devolver referencias sin entrada si eso implicaría devolver referencias a datos no válidos. Los ejemplos proporcionados demuestran formas válidas de funciones con tiempos de vida, incluyendo funciones con una referencia de entrada, funciones con referencias mutables, funciones con múltiples elementos y diferentes tiempos de vida, y funciones que devuelven referencias que se han pasado como parámetros.
Rust
Exploración de la Coerción de Vida útil en Rust

Exploración de la Coerción de Vida útil en Rust

En este laboratorio, se explora el concepto de coerción en Rust, donde una vida útil más larga puede ser forzada a convertirse en una más corta para habilitar la funcionalidad dentro de un ámbito específico. Esto puede ocurrir a través de la coerción inferida por el compilador de Rust o declarando una diferencia de vida útil utilizando sintaxis como <'a: 'b, 'b>.
Rust
Límites de período de vida y rasgos en Rust

Límites de período de vida y rasgos en Rust

En este laboratorio, aprendemos sobre los límites en Rust, que se utilizan para restringir los períodos de vida o los rasgos de los tipos genéricos. El carácter : se utiliza para indicar que todas las referencias en un tipo deben tener un período de vida mayor que un cierto período de vida, mientras que + se utiliza para indicar que un tipo debe implementar un rasgo y todas las referencias en él deben tener un período de vida mayor que un cierto período de vida. Un fragmento de código de ejemplo demuestra la sintaxis y el uso de los límites en Rust.
Rust
  • Anterior
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • ...
  • 14
  • Siguiente