Wenn Sie daran interessiert sind, weitere Rost -Themen zu erkunden, lesen Sie unsere Rostliste, um mehr zu erfahren.
Der Parameter
Wenn Sie generische Typen deklarieren, finden Sie den Parameter. Es wird verwendet, um jeden Datentyp in Rost darzustellen:
Ein Beispiel für den Typparameter in einer Funktion ist ein gezeigt:
fn my_functionDas obige definiert eine generische Funktion, die ein Argument t von irgendeiner Art nimmt.
Sie können mehrere generische Parameter definieren, indem Sie sie mit Kommas trennen:
fn my_functionIn der obigen Syntax definieren wir mehrere generische Parameter, T, u, v. Obwohl nicht erforderlich, ist es üblich, generische Typen aus T zu finden und das Alphabet zu erhöhen.
Rost definieren generische Struktur
Wir können eine generische Struktur definieren, wie in der folgenden Syntax gezeigt:
StrukturstrukturnameNehmen Sie das unten definierte Beispiel: Struktur: unten definiert:
Struktur MystructDas obige erstellt eine generische Struktur mit zwei Parametern. Innerhalb der Struktur geben wir zwei Strukturelemente von Typ t und u an. Da T und U generische Typen sind, können sie von jeder Art sein.
Generische Funktionen
Das gleiche Konstrukt kann auf Funktionen und Methoden angewendet werden. Wenn eine Funktion den Typ nimmt, soll sie eine generische Funktion sein.
Die generische Funktionsdefinition ist wie gezeigt:
fn func_nameNehmen Sie nachfolgend das Beispiel der generischen Funktionsdefinition:
fn genericIn diesem Beispiel haben wir eine generische Funktion, die einen beliebigen Typ nimmt und in die Konsole druckt. Das Ausführen des oben genannten Codes verursacht jedoch einen Fehler.
Da wir einen generischen Parameter verwenden, müssen wir das Display- oder Debugg -Merkmal implementieren, um es auszudrucken. Wir können den Code als:
Verwenden Sie std :: fmt :: debug;In diesem Fall importieren wir das Debug -Merkmal und verwenden sie für den generischen Typ. Wir können dann den Wert mit dem Debug -Merkmal Platzhalter ausdrucken: :?
Der gleiche Fall gilt, wenn eine Funktion irgendeine Art von Betrieb ausführen muss. Nehmen Sie die Beispielfunktion unten, die 0 zurückgibt, wenn ein Wert gleichmäßig ist und 1, wenn anders.
fn Savor_oddWenn wir die Funktion oben aufrufen, gibt sie einen Fehler zurück. Wir müssen das REM -Merkmal implementieren, damit sie wie:
Verwenden Sie std :: ops :: rem;Mit den REM- und EQ -Merkmalen können Sie den Restbetreiber verwenden und einen logischen Vergleich durchführen.
Abschluss
In diesem Artikel haben wir die Grundlagen der Arbeit mit generischen Typen in der Rostsprache untersucht. Überprüfen Sie die Dokumente, um mehr zu erfahren.