¿Qué significa unwrap?
Clase 12 de 20 • Curso de Rust básico
Contenido del curso
Clase 12 de 20 • Curso de Rust básico
Contenido del curso
Sebastián Franco
David Gallego
Carlos Rodríguez
Kevin Fiorentino
Carlos Rodríguez
Kevin Fiorentino
Carlos Rodríguez
Nicolas Leonardo Anicama Espinoza
Sergio Estrella
Hecot Pulido
Carlos Rodríguez
Danie Jaramillo
Hecot Pulido
Hecot Pulido
José Luis Puc Sarmiento
Edward Rodriguez
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 :)
Genial tu aporte, veo que recomiendan el uso de unwrap para situaciones en las que estemos seguros que no habrá ningún error, pero en el caso en donde pueda haber algún error (que es en la mayoría de los casos), recomiendan utilizar el pattern matching o el símbolo ?
Gran aporte, te agradezco.
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
Estas en lo correcto kevin.
Documentacion oficiales de cada tipo de dato:
Súper, gracias por el valioso aporte.
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:
Option:
Option puede ser Some(value) o None. Es útil cuando existe la posibilidad de que un valor esté presente o no.unwrap en un Option, obtienes el valor si es Some. Si es None, el programa se detiene y muestra un mensaje de error.Result:
Result puede ser Ok(value) para indicar éxito, o Err(error) para indicar un fallo.unwrap en un Result, obtienes el valor si es Ok. Si es Err, el programa se detiene y muestra el error.Option <T> es como una especie de tipado dinámico en Rust?
Sip, es justo eso
Aprender sobre el manejo de errores en Rust es fundamental para crecer en el lenguaje.
¿Una función puede devolver un Option?
Sip, se hace cuando quieres que devuelva un valor o no devuelva nada 😌
Aquí un ejemplo:
fn divide(numerator: f64, denominator: f64) -> Option<f64> { if denominator == 0.0 { None } else { Some(numerator / denominator) } }
En Rust no hay nulos, en todo caso para omitir errores sobre si un valor puede o no existir, se usa Option<T>
Ohhhh, ya estoy amando Rust