Variables Estáticas Mutables
Es seguro leer una variable estática inmutable:
static HELLO_WORLD: &str = "Hello, world!"; fn main() { println!("HELLO_WORLD: {HELLO_WORLD}"); }
Sin embargo, dado que pueden producirse carreras de datos, no es seguro leer y escribir variables estáticas mutables:
static mut COUNTER: u32 = 0; fn add_to_counter(inc: u32) { unsafe { COUNTER += inc; } // Potential data race! } fn main() { add_to_counter(42); unsafe { println!("COUNTER: {COUNTER}"); } // Potential data race! }
No suele ser buena idea usar una variable estática mutable, pero en algunos casos puede encajar en código no_std
de bajo nivel, como implementar una asignación de heap o trabajar con algunas APIs C.