Avatar ·

¿Qué es unwrap() en Rust y para qué se usa? Explique con ejemplos

¡Hola a todos! Acabo de empezar a aprender Rust después de Python y me encontré con una construcción extraña: el método unwrap(). En diferentes ejemplos de código veo algo como: ```rust let x = some_result.unwrap(); ``` Entiendo que está relacionado con el manejo de errores, pero no termino de comprender el mecanismo. En Python estamos acostumbrados a try/except, pero aquí hay una lógica diferente. Me confunde especialmente cuando veo unwrap() después de llamar a funciones que devuelven Result o Option. Por ejemplo, al leer un archivo o parsear un número desde una cadena: ```rust let number: i32 = "42".parse().unwrap(); let content = std::fs::read_to_string("file.txt").unwrap(); ``` ¿Qué sucede si el archivo no existe o la cadena no es un número? He oído que unwrap puede causar un panic — ¿es como una excepción? ¿O es algo diferente? ¿Cuándo se debe usar unwrap y cuándo es mejor aplicar otros métodos? ¿Existen alternativas que no lleven a una terminación abrupta del programa? Por favor, explíquelo con ejemplos simples.