Avatar ·

Comment accéder aux valeurs d'une enum en Rust ? Analyse de match, if let et autres méthodes

Bonjour à tous ! J'ai récemment commencé à apprendre Rust et j'ai rencontré un problème en travaillant avec les énumérations (enums). J'ai créé une simple enum pour représenter le statut d'une commande : ```rust enum OrderStatus { Pending, Processing, Shipped(String), Delivered { date: String, signature: bool }, } ``` Mais je ne comprends pas comment extraire les données des variants. Par exemple, quand le statut est `Shipped`, j'ai besoin d'obtenir le numéro de suivi (`String`). Quand c'est `Delivered` — la date et la signature. Écrire simplement `order_status.tracking_number` ne fonctionne pas — le compilateur se plaint. J'ai essayé d'utiliser `match`, mais je me trompe constamment dans la syntaxe et j'obtiens des erreurs comme "expected enum, found &str". Dans la documentation, on parle de `if let` et `unwrap`, mais je ne comprends pas quand utiliser quoi. Pouvez-vous m'indiquer, s'il vous plaît, comment accéder correctement aux données à l'intérieur d'une enum en Rust ? J'aimerais voir des exemples avec différents variants : à la fois avec des champs nommés, avec des tuples, et simplement des variants sans données. Je suis également intéressé par : peut-on en quelque sorte...