Variáveis Estáticas Mutáveis
É seguro ler uma variável estática imutável:
static OLA_MUNDO: &str = "Olá, mundo!"; fn main() { println!("OLA_MUNDO: {OLA_MUNDO}"); }
No entanto, como podem ocorrer corridas de dados, não é seguro ler e gravar dados em variáveis estáticas mutáveis:
static mut CONTADOR: u32 = 0; fn adicionar_ao_contador(inc: u32) { unsafe { CONTADOR += inc; } // Corrida de dados potencial! } fn main() { adicionar_ao_contador(42); unsafe { println!("CONTADOR: {CONTADOR}"); } // Corrida de dados potencial! }
Usar uma variável estática mutável geralmente é uma má ideia, mas há alguns casos em que isso pode fazer sentido, tais como em código no_std
de baixo nível, como implementar um alocador de heap ou trabalhar com algumas APIs C.