Traits de rouille

Traits de rouille

Un trait fait référence à un groupe de méthodes définies pour un type spécifique. Les traits sont incroyables car ils fournissent une abstraction pour les fonctionnalités et la logique qui peuvent être partagées entre plusieurs types.

Les traits prennent en charge les méthodes en béton et abstraites, comme nous le verrons dans cet article.

Rust Define Trait

Pour définir un trait de rouille, nous utilisons le mot-clé de trait, suivi du nom et du corps du trait. Le corps des traits peut contenir une méthode de béton ou de résumé.

La syntaxe est comme indiqué:

TraitTraitName
fnabs_method (& self);
fncon_method (& self)
// Corps de fonction

Notez qu'une méthode de trait comprend le paramètre et l'auto-paramètre. Il doit s'agir du premier paramètre de la méthode, et d'autres paramètres doivent être fournis après.

trait info
fn Description (& self) -> String;
kilométrage fn (& self) -> f64;

Dans le code ci-dessus, nous définissons un détroit appelé INFO qui contient des méthodes abstraites. Un objet de voiture peut utiliser les méthodes ci-dessus. Cependant, comme la méthode de description et les valeurs de kilométrage peut différer en fonction de la voiture, la logique doit être appliquée distinctement.

Trait d'implémentation de la rouille

Après avoir défini un trait, nous pouvons avoir besoin de l'implémenter. La syntaxe pour l'implémentation de la méthode des traits est similaire à une méthode de structure.

Considérez l'exemple ci-dessous:

Traitinfo
fnDescription (& self) -> String;
fnmileage (& self) -> f64;

structvehicle
Modèle: chaîne,
Fabricant: chaîne,
Prix: i32

INPOT INT pour le véhicule
fnDescription (& self) -> String
returnformat!("Modèle: , fabricant: , prix: ", self.modèle, soi.Fabricant, soi.prix);

fnmileage (& self) -> f64
return10000.33;

Dans l'exemple ci-dessus, nous définissons une structure qui contient des informations pour un véhicule. Nous pouvons alors implémenter des méthodes, comme indiqué ci-dessus.

Dans la fonction principale, nous pouvons avoir des instances pour les structures du véhicule comme indiqué:

fnmain ()
Soit Car = Véhicule
Modèle: "Camry".to_string (),
Fabricant: "Toyota".to_string (),
Prix: 25295
;
Laissez la moto = véhicule
Modèle: "V-max".to_string (),
Fabricant: "Yamaha".to_string (),
Prix: 27999
;

Dans le code ci-dessus, nous définissons deux instances de la structure du véhicule avec les propriétés implémentées différemment.

Appeler des méthodes de traits

Une fois que nous avons mis en œuvre les méthodes de trait, nous pouvons appeler la méthode en utilisant la notation de points comme indiqué:

println!("", voiture.description());

Cela devrait revenir:

Modèle: Camry, fabricant: Toyota, Prix: 25295

Conclusion

Ce guide fournit les principes fondamentaux pour travailler avec des traits dans le langage de la rouille. Considérez la documentation pour en savoir plus.