Rostmerkmale

Rostmerkmale

Ein Merkmal bezieht sich auf eine Gruppe von Methoden, die für einen bestimmten Typ definiert sind. Merkmale sind unglaublich, da sie eine Abstraktion für Funktionen und Logik bieten, die zwischen mehreren Typen geteilt werden kann.

Merkmale unterstützen konkrete und abstrakte Methoden, wie wir in diesem Artikel sehen werden.

Rost definieren Merkmal

Um ein Merkmal in Rost zu definieren, verwenden wir das Schlüsselwort des Merkmals, gefolgt vom Namen und Körper des Merkmals. Der Merkmalkörper kann entweder eine konkrete oder abstrakte Methode enthalten.

Die Syntax ist wie gezeigt:

BAITTRAITNAME
fnabs_method (& self);
fncon_method (& self)
// Funktionskörper

Beachten Sie, dass eine Merkmalsmethode den & self -Parameter enthält. Dies muss der erste Parameter in der Methode sein, und andere Parameter müssen danach bereitgestellt werden.

Merkmalsinformationen
fn Beschreibung (& self) -> String;
FN Kilometerleistung (& Selbst) -> F64;

Im obigen Code definieren wir eine Straße mit dem Namen Info, die abstrakte Methoden enthält. Ein Autoobjekt kann die obigen Methoden verwenden. Da sich jedoch die Beschreibungs- und Kilometerwerte in Abhängigkeit vom Auto unterscheiden können, muss die Logik deutlich angewendet werden.

Rost -Implementierungsmerkmal

Nachdem wir ein Merkmal definiert haben, müssen wir es implementieren. Die Implementierung der Syntax für die Merkmalsmethode ähnelt einer Strukturmethode.

Betrachten Sie das folgende Beispiel:

Merkmale
fndescription (& self) -> String;
fnmileage (& self) -> f64;

Struktur
Modell: Zeichenfolge,
Hersteller: String,
Preis: i32

Impl Info für Fahrzeug
fndescription (& self) -> String
returnFormat!("Modell: , Hersteller: , Preis: ", Selbst.Modell, Selbst.Hersteller, Selbst.Preis);

fnmileage (& self) -> f64
Rückkehr10000.33;

Im obigen Beispiel definieren wir eine Struktur, die Informationen für ein Fahrzeug enthält. Wir können dann Methoden implementieren, wie oben gezeigt.

In der Hauptfunktion können wir Instanzen für die Fahrzeugstrukturen wie gezeigt haben:

fnmain ()
lass Car = Fahrzeug
Modell: "Camry".to_string (),
Hersteller: "Toyota".to_string (),
Preis: 25295
;
Sei Motorcycle = Fahrzeug
Modell: "V-Max".to_string (),
Hersteller: "Yamaha".to_string (),
Preis: 27999
;

Im obigen Code definieren wir zwei Fälle der Fahrzeugstruktur mit den unterschiedlichen Eigenschaften, die unterschiedlich implementiert sind.

Merkmalsmethoden aufrufen

Sobald wir die Methoden für ein Merkmal implementiert haben, können wir die Methode mit der Punktnotation wie gezeigt aufrufen:

println!("", Auto.Beschreibung());

Dies sollte zurückkehren:

Modell: Camry, Hersteller: Toyota, Preis: 25295

Abschluss

Dieser Leitfaden bietet die Grundlagen für die Arbeit mit Merkmalen in der Rostsprache. Betrachten Sie die Dokumentation, um mehr zu erfahren.