Looking for rust Keywords? Try Ask4Keywords

RustGlobals


Syntax

  • const IDENTIFIER: type = constexpr;
  • statisch [mut] IDENTIFIER: type = expr;
  • lazy_static! {statischer Ref IDENTIFIER: Typ = Ausdruck; }

Bemerkungen

  • const Werte sind immer inline und haben keine Adresse im Speicher.
  • static Werte werden nie eingebettet und haben eine Instanz mit einer festen Adresse.
  • static mut Werte sind nicht speichersicher und können daher nur in einem unsafe Block abgerufen werden.
  • Die Verwendung globaler statischer variabler Variablen in Multithread-Code kann manchmal gefährlich sein. Daher sollten Sie std :: sync :: Mutex oder andere Alternativen in Betracht ziehen
  • lazy_static Objekte sind unveränderlich, werden nur einmal initialisiert, werden von allen Threads gemeinsam verwendet und können direkt aufgerufen werden (es sind keine Wrapper-Typen beteiligt). Im Gegensatz dazu sind thread_local Objekte veränderbar, werden für jeden Thread einmalig initialisiert und Zugriffe sind indirekt (einschließlich des Wrapper-Typs LocalKey<T> ).

Globals Verwandte Beispiele