Filtrage par motif

1. Premier exemple, pour rappel

On commence par créer un projet pour les motifs :

cargo new motifs --bin 
>     Created binary (application) `motifs` package 

Reprenons un petit exemple pour illustrer le filtrage par motif en général, spécialement dans le cas d’une énumération.

Imaginons une structure qui contient plusieurs sortes de personnages d’un monde merveilleux : Héros, Magicien, Fantôme et Combattant.

  • Héros est défini en tant que structure Unité.

  • Fantôme et Combattant le sont en tant que structure à champs nommés, mais avec un nombre de champs différent entre les deux.

  • Magicien est défini en tant que structure Tuple.

On a de ce fait ce code :

enum Personnage{ 
    Heros, 
    Fantome { points_de_vie : u32, indice_invisibilite : u32}, 
    Combattant { points_de_vie : u32}, 
    Magicien(u32, u32), 
} 

On crée plusieurs de ces personnages :

let h = Personnage::Heros; 
 
let f = Personnage::Fantome{points_de_vie : 25, 
indice_invisibite : 12}; 
 
let c = Personnage::Combattant{points_de_vie : 35}; 
 
let m = Personnage::Magicien(34, 78); 

Maintenant, on voudrait bien une unique fonction à même de nous retourner les données précises qui composent chaque personnage. On ne peut pas demander directement à l’énumération...

Pour consulter la suite, découvrez le livre suivant :
couv_EIRUST.png
60-signet.svg
En version papier
20-ecran_lettre.svg
En version numérique
41-logo_abonnement.svg
En illimité avec l'abonnement ENI
130-boutique.svg
Sur la boutique officielle ENI
Précédent
Les énumérations en Rust
Suivant
Introduction