Utiliser un trait en paramètre

1. Introduction

On peut à présent chercher à avoir une fonction qui prend en paramètre un trait. En effet, cela permet d’avoir en réalité toutes sortes de structures éligibles pour être passées en paramètre. Dans notre exemple, on passerait un Animal en paramètre de la fonction, c’est-à-dire que l’on pourrait aussi bien avoir un Chat qu’un Chien. En science informatique, on parle parfois, pour désigner ce mécanisme, de transtypage.

2. Exemple de trait en paramètre Trait:en paramètre

Nous allons ajouter une fonction afficher dans notre exécutable client. Le but est d’appeler la méthode afficher du trait Animal. On nomme cette méthode afficher_trait :

pub fn afficher_trait(animal: &impl Animal) { 
    animal.afficher(); 
} 

Cette manière d’écrire la fonction est particulièrement claire. Elle correspond à ce que l’on appelle du sucre syntaxique. Autrement dit, c’est une syntaxe plus intuitive, plus facilement utilisable que la syntaxe en théorie. En effet, en théorie, on l’écrirait ainsi :

pub fn afficher_trait<T: Animal>(animal: &T) { 
    animal.afficher(); 
} 

C’est exactement la même chose : mais comme on le voit, la version « sucre syntaxique » est particulièrement intuitive.

Testons...

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
Premier trait en Rust
Suivant
Notion de trait lié