Statische Variablen im Rost können einen Destruktor haben, aber dieser Destruktor wird niemals gelaufen, da sie ein statisches Leben haben. Dies bedeutet, dass ihnen im gesamten Leben des Programms, in dem sie deklariert werden.
Beachten Sie, wenn eine Variable in einer Funktion als statisch deklariert wird. Daher können Teile des Programms außerhalb der Funktion nicht auf ihren Wert zugreifen. Sein Zielfernrohr wird jedoch nicht fallen, wenn der Funktionsbereich stirbt.
Um mehr über Drop und Destructors in Rost zu erfahren.
Punkte zu beachten
Im Folgenden sind einige wichtige Punkte zu beachten, die bei der Verwendung statischer Variablen in Rost:
Statische Variablen müssen fadensicher sein. Daher muss der angegebene Typ das Synchronisierungsmerkmal implementieren. Das Festlegen einer Variablen als statisch mit einem Typ, der nicht mit Faden sicher ist.
Statische Variablen können nur andere statische Variablen nur durch Referenz verweisen.
Konstanten oder statisch
Obwohl statische Variablen keine Substitution für konstante Variablen sind, empfiehlt Rust, immer zuerst Konstanten zu bevorzugen, es sei denn, es handelt sich um:
Rost erzeugt eine statische Variable
Es gibt zwei Hauptmethoden, um eine statische Variable im Rost zu erstellen. Die erste besteht darin, einen konstanten Wert mit einer statischen Erklärung zu schaffen.
Ein Beispielcode ist wie unten gezeigt:
Statischer Wert: i32 = 10;
Die zweite Methode, um einen statischen Wert zu erzeugen. Beispiel ist wie gezeigt:
Lassen Sie Hallo: & 'static Str = "Hallo";
Denken Sie daran, dass der STR -Typ in Rost eine Art String -Literale ist, die als & 'statische STR definiert sind.
Da String -Literale eine Schnur sind, werden sie in der endgültigen binären und damit eine statische Lebensdauer gespeichert.
Da Streichentypen in Rost möglicherweise nicht im Leben des Programms leben, ist es nicht möglich, einen String -Typ in eine statische Zeichenfolge umzuwandeln. Sie können jedoch eine Saitenscheibe erstellen, die im folgenden Beispiel statisch ist, wie es angezeigt wird:
Sei String: String = "Hallo Welt".to_owned ();
lass str_slice: & str = & String […];
NOTIZ: Obwohl Sie einen veränderlichen statischen Wert haben können, kann Rost beim Zugriff auf eine veränderliche statische Variable keine baumelnden Referenzen oder Datenrennen beweisen. Rost entmutigt im Allgemeinen mit statischen veränderlichen Variablen.
Abschluss
Dieser kurze Artikel versucht, das Konzept statischer Variablen im Rost zu diskutieren. Denken Sie daran, dass dieser Leitfaden nicht als Hinweis auf Statik in Rost dienen kann. Überprüfen Sie die Dokumentation, um zu verstehen, wie statisch in Rost funktioniert.