¿Qué es null/nil en Rust y cómo trabajar con ello?
¡Hola a todos! Empecé a estudiar Rust después de C++/Java, y no logro entender el concepto de null/nil. En otros lenguajes estoy acostumbrado a que una variable puede ser null (o nil), y esto a menudo llevaba a NullPointerException. Según entiendo, en Rust esto no debería ocurrir, pero entonces, ¿cómo trabajar con la ausencia de un valor?
Ya leí sobre Option y entiendo que es el análogo de Optional en Java o Maybe en Haskell. Pero en la práctica tengo dificultades. Aquí hay un ejemplo de código que escribí:
```rust
fn find_user(id: i32) -> Option {
if id == 1 {
Some(String::from("Alice"))
} else {
None
}
}
fn main() {
let user = find_user(2);
// ¿Cómo manejar correctamente este caso?
// Probé así:
// let name = user.unwrap(); // panic en None
// let name = user.expect("User not found"); // también panic
// let name = user.unwrap_or(String::from("Default")); // funciona, pero pierdo información del error
}
```
Espero que en