Peut-on utiliser des variables globales en Rust ?
Bonjour à tous ! Je viens de commencer à apprendre Rust, je suis passé du C++, et j'ai un problème. En C++, j'avais l'habitude d'utiliser des variables globales pour stocker la configuration de l'application ou des compteurs auxquels on doit accéder depuis différentes fonctions. Par exemple, j'ai un simple compteur d'appels de fonction :
```rust
static COUNTER: i32 = 0;
fn increment() {
COUNTER += 1; // Erreur !
}
```
Le compilateur donne l'erreur : "cannot mutate static variable". J'ai essayé de l'envelopper avec `mut` :
```rust
static mut COUNTER: i32 = 0;
fn increment() {
COUNTER += 1; // unsafe ! Très peu pratique.
}
```
Maintenant le compilateur exige d'envelopper l'accès dans `unsafe { ... }`. Je comprends que ce n'est pas sûr, mais comment organiser correctement un état global ? J'ai besoin que la variable soit visible dans tout le programme.