Aller au contenu
uencoder

Trait

Un trait définit un ensemble de méthodes pour un comportement partagé ; les types implémentent le trait pour fournir ces méthodes — le mécanisme d'interface et d'abstraction de Rust/Scala.

Objectif

Définir des interfaces de comportement partagé, en privilégiant la composition sur l'héritage.

Mécanisme

Un trait déclare des signatures de méthodes (éventuellement avec implémentations par défaut). Les types font impl Trait pour fournir les corps. Les bornes de trait contraignent les types génériques. Les trait objects (dyn Trait) permettent la répartition dynamique. Les supertraits fournissent l'héritage.

Cas d’usage

  • Programmation en Rust
  • Abstraction d'interfaces
  • Contraintes génériques

References