No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

¿Qué significa unwrap?

12/20
Recursos

Rust es un lenguaje de bajo nivel, lo que lleva a tener diferencias importantes con respecto a lenguajes de alto nivel como Javascript o Python. El manejo de errores es uno de los puntos donde Rust innova totalmente en comparación a otros lenguajes.

Manejo de errores en Rust

En Rust, no existen los valores nulos. Al tratarse de un lenguaje que busca la seguridad y la robustez en el software, no permite los errores en tiempo de ejecución producto del valor nulo de una variable.

En Rust todo es un tipo de dato. El tipo de dato Option, contiene dentro el tipo de dato que puede existir o no como un número entero o un string. Devolverá el mismo, si existe, o nos devolverá en caso contrario un None que indica su no existencia, pero que no es lo mismo que null, ya que es un tipo de dato, y null un espacio en memoria totalmente vacio.

Una operación en Rust devuelve el tipo de dato Result, donde T es el valor de la operación exitosa y E un posible error. En Rust, los errores también son un tipo de dato. Para manejarlos, utilizamos .unwrap(). el mismo nos devuelve el valor T que necesitamos si este existe o E en caso de producirse un error.

Nota: En Rust tampoco existe la sentencia try/catch para la captura de errores como en otros lenguajes.

 
Si no implementamos .unwrap(), podemos obtener un warning por consola que nos advierte de la posibilidad del error en una operación. De esta manera, gracias a este tipo de dato que contiene el error, podemos actuar en consecuencia a partir de identificar el tipo de error.

El manejo de errores es Rust es algo complejo de entender. La práctica hará que puedas lograr comprenderlo a partir de la resolución de problemas.


Contribución creada por: Kevin Fiorentino.

Aportes 6

Preguntas 2

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Hola, en Esta discusión de Stack Overflow se expone el funcionamiento y caso de uso del unwrap. En esencia es lo mismo que dice el profesor, pero exponen un poquito más a detalle cuando usarlo o cuando no. Nunca hace mal una lectura extra 😃

Minuto 1:27 - “Básicamente, si el valor existe, entonces nos devolverá None (que no es lo mismo que null) o nos devolverá el valor como tal”.

Creo que hay un pequeño error en cómo se expresó el profesor, devuelve None si NO existe, de lo contrario devuelve el valor que corresponde. Corrijanme sí me equivoco, por favor.

Documentación None

Documentacion oficiales de cada tipo de dato:

Aprender sobre el manejo de errores en Rust es fundamental para crecer en el lenguaje.

En Rust, `unwrap` es un método que se utiliza para extraer el valor contenido dentro de un `Result` o `Option`. Estos dos tipos son comúnmente usados para manejar errores y valores opcionales en Rust. Usar `unwrap` es una forma sencilla de decir: "Si este valor es exitoso, dame el contenido; si hay un error, detén el programa". ### Contextos Comunes para `unwrap`: 1. `Option`: * Un `Option` puede ser `Some(value)` o `None`. Es útil cuando existe la posibilidad de que un valor esté presente o no. * Al usar `unwrap` en un `Option`, obtienes el valor si es `Some`. Si es `None`, el programa se detiene y muestra un mensaje de error. 2. `Result`: * Un `Result` puede ser `Ok(value)` para indicar éxito, o `Err(error)` para indicar un fallo. * Al usar `unwrap` en un `Result`, obtienes el valor si es `Ok`. Si es `Err`, el programa se detiene y muestra el error.
Ohhhh, ya estoy amando Rust