Avatar ·

Kann man globale Variablen in Rust verwenden?

Hallo zusammen! Ich habe gerade angefangen, Rust zu lernen, bin von C++ umgestiegen und habe ein Problem. In C++ war ich es gewohnt, globale Variablen zu verwenden, um Anwendungskonfigurationen oder Zähler zu speichern, auf die von verschiedenen Funktionen aus zugegriffen werden muss. Zum Beispiel habe ich einen einfachen Funktionsaufrufzähler: ```rust static COUNTER: i32 = 0; fn increment() { COUNTER += 1; // Fehler! } ``` Der Compiler gibt einen Fehler aus: "cannot mutate static variable". Ich habe versucht, es mit `mut` zu umschließen: ```rust static mut COUNTER: i32 = 0; fn increment() { COUNTER += 1; // unsafe! Sehr umständlich. } ``` Jetzt verlangt der Compiler, den Zugriff in `unsafe { ... }` zu verpacken. Ich verstehe, dass das unsicher ist, aber wie organisiert man dann richtig globalen Zustand? Ich brauche, dass die Variable im gesamten Programm sichtbar ist.