Statyczny sznur

Statyczny sznur
Zmienna statyczna odnosi się do rodzaju zmiennej, która ma ustaloną lokalizację pamięci. Są podobne do stałych zmiennych, z wyjątkiem tego, że reprezentują lokalizację pamięci w programie.

Zmienne statyczne w rdzy mogą mieć destruktor, ale ten destruktor nigdy nie jest uruchomiony, ponieważ mają statyczne życie. Oznacza to, że nigdy nie zabraknie im zakresu przez cały okres życia programu, w którym są zadeklarowane.

UWAGA Jeśli zmienna jest zadeklarowana jako statyczna wewnątrz funkcji, zakres, co oznacza, że ​​nie ma to wpływu na dostępność zmiennej. Stąd części programu poza funkcją nie mogą uzyskać dostępu do jej wartości. Jednak jego zakres nie jest upuszczony, gdy zakres funkcji umiera.

Aby dowiedzieć się więcej o kroplach i destrukturach w rdzy.

Punkty, aby zwrócić uwagę

Poniżej pojawiają się kilka ważnych punktów, które należy zwrócić uwagę przy użyciu zmiennych statycznych w rdzy:

Zmienne statyczne muszą być bezpieczne. Stąd określony typ musi zaimplementować cechę synchronizacji. Ustawienie zmiennej jako statycznej z typem, który nie jest bezpieczny w wątku, może prowadzić do warunków wyścigu danych.

Zmienne statyczne mogą odwoływać się tylko do innych zmiennych statycznych przez odniesienie.

Stałe lub statyczne

Chociaż zmienne statyczne nie są substytucją stałych zmiennych, rdza zaleca zawsze faworyzowanie stałych najpierw, chyba że:

  1. Musisz przechowywać duże ilości danych.
  2. Potrzebujesz zmuszenia wewnętrznej
  3. Potrzebujesz natury zmiennych statycznych jednokrotnie zaawansowanych.

Rdza Utwórz zmienną statyczną

Istnieją dwa główne sposoby stworzenia zmiennej statycznej w rdzy. Pierwszym z nich jest stworzenie stałej wartości ze statyczną deklaracją.

Przykładowy kod jest pokazany poniżej:

Wartość statyczna: i32 = 10;

Drugą metodą utworzenia wartości statycznej jest utworzenie literału ciągów z typem i „statycznym Str. Przykład to jak pokazano:

Niech Hello: & 'static str = "hello";

Należy pamiętać, że typ STR w rdzy jest rodzajem literałów smyczkowych zdefiniowanych jako i „statyczny str.

Ponieważ literały strunowe są plasterkami sznurka, są przechowywane w końcowym binarie, a zatem statyczne życie.

Ponieważ typy ciągów w rdzy mogą nie żyć w życiu programu, nie można konwertować typu ciągów na statyczny ciąg. Możesz jednak utworzyć plasterek ciągów, który jest statyczny, jak pokazuje w poniższym przykładzie:

Niech String: String = "Hello World".to_owned ();
Niech str_slice: & str = & string […];

NOTATKA: Chociaż możesz mieć zmienną wartość statyczną, Rust nie może udowodnić wiszących odniesień lub ras danych podczas uzyskiwania zmiennej zmiennej statycznej. Rdza ogólnie zniechęca przy użyciu statycznych zmiennych zmiennych.

Wniosek

Ten krótki artykuł próbuje omówić pojęcie zmiennych statycznych w rdzy. Należy pamiętać, że ten przewodnik nie może służyć jako odniesienie do statyki w rdzy. Sprawdź dokumentację, aby zrozumieć, jak działa statyczny w rdzy.