Intelligente Zeiger sind Zeiger mit erweiterten Funktionen wie gebundenen Überprüfungen und automatischer Speicherverwaltung. Intelligente Zeiger enthalten auch zusätzliche Metadaten. Jetzt ist das Konzept der Smart -Zeiger nicht neu, insbesondere für C ++ - Programmierer.
Für diesen Artikel werden wir verschiedene intelligente Hinweise untersuchen, wie in der Rust Standard Library definiert.
Schlüsselpunkte
In Rost sind intelligente Zeiger Datenstrukturen, aber im Gegensatz zu normalen Zeigern können intelligente Zeiger tatsächlich Daten besitzen. Sie werden üblicherweise unter Verwendung von Strukturen implementiert, unterscheiden sich jedoch von normalen Strukturen in dem Sinne, dass sie Deref- und Drop -Merkmale implementieren.
Es gibt 5 intelligente Zeiger in Rost:
NOTIZ: In Rost bezieht sich auf den Datentyp.
Denken Sie daran, dass in diesem Artikel nicht alle intelligenten Zeiger abdecken werden.
Kasten
Der Box Smart Zeiger bietet eine Möglichkeit, Daten zu verweisen, die im Heap -Speicher gespeichert sind. Standardmäßig verteilt Rost alles im Stapelspeicher. Mit dem Box Smart Zeiger können wir auf den Heap zugreifen, wobei wir keine Leistungsaufwand entstehen.
Der Box Smart Zeiger folgt auch den Regeln für Eigentum und Kreditaufnahme. Daher hat es einen einzelnen Besitzer von Daten und kann nur eine veränderliche Referenz und eine beliebige Anzahl unveränderlicher Referenzen haben.
fn main ()Im obigen Beispiel haben wir einen Box Smart Zeiger, der den Wert 5 auf dem Haufen speichert. Denken Sie daran, dass die Box selbst im Stapel gespeichert ist.
Sobald das Programm beendet ist, wird die Box aus dem Speicher ausgelöst.
Deref
Wie der Name schon sagt, wird der Deref -Smart -Zeiger verwendet, um die Manipulation des Derferenzvorgangs zu ermöglichen. Mit dem Deref Smart Zeiger können Sie eine Struktur erstellen, die sowohl mit intelligentem Zeiger als auch mit Referenzen funktionieren kann.
Ein Beispielcode ist wie unten gezeigt:
Verwenden Sie std :: ops :: Deref;Tropfen
Der Drop -Smart -Zeiger wird verwendet, um den Speicher zu kosten, der im Haufen zugewiesen wird. Das Drop -Merkmal in Rost behandelt das Speicher, wenn eine Variable aus dem Spielraum ausgeht. Wir müssen dieses Merkmal nicht manuell anrufen, da Rost dies für uns tun wird. Wir können es jedoch für benutzerdefinierte Typen wie gezeigt implementieren.
Struktur MystructDie obigen implementiert das Drop -Merkmal für benutzerdefiniertes Merkmal. Der Ausgang ist wie gezeigt:
Fallen: 200
Fallen: 100
Abschluss
In diesem Artikel behandeln wir, wie gemeinsame intelligente Zeiger in der Rust -Programmiersprache erstellt und mit ihnen arbeiten können und arbeiten können und arbeiten. In der unten stehenden Ressource erfahren Sie mehr über Rust Smart Pointers:
https: // doc.Rost-Lang.org/book/ch15-00-smart-Pointers.html