Avatar ·

¿Cómo acceder a los valores de enum en Rust? Analizando match, if let y otras formas

¡Hola a todos! Empecé a estudiar Rust recientemente y me encontré con un problema al trabajar con enums. Creé un enum simple para representar el estado de un pedido: ```rust enum OrderStatus { Pending, Processing, Shipped(String), Delivered { date: String, signature: bool }, } ``` Pero no entiendo cómo extraer datos de las variantes. Por ejemplo, cuando el estado es `Shipped`, necesito obtener el número de seguimiento (`String`). Cuando es `Delivered` — la fecha y la firma. Simplemente escribir `order_status.tracking_number` no funciona — el compilador se queja. Intenté usar `match`, pero constantemente me confundo con la sintaxis y obtengo errores como "expected enum, found &str". En la documentación se menciona `if let` y `unwrap`, pero no entiendo cuándo aplicar cada uno. Por favor, indíquenme cómo acceder correctamente a los datos dentro de un enum en Rust. Me gustaría ver ejemplos con diferentes variantes: con campos nombrados, con tuplas y variantes sin datos. También me interesa: ¿se puede de alguna manera...