static
Variåveis eståticas permanecerão vålidas durante toda a execução do programa e, portanto, não serão movidas:
static BANNER: &str = "Bem-vindos ao RustOS 3.14"; fn main() { println!("{BANNER}"); }
Conforme observado no Rust RFC Book, eles nĂŁo sĂŁo expandidos no local (inlined) quando utilizados e possuem um local de memĂłria real associado. Isso Ă© Ăștil para cĂłdigo inseguro (unsafe) e embarcado, e a variĂĄvel Ă© vĂĄlida durante toda a execução do programa. Quando um valor de escopo global nĂŁo tem uma razĂŁo para precisar de identidade de objeto, geralmente const
Ă© preferido.
static
Ă© similar a variĂĄveis globais mutĂĄveis em C++.static
fornece identidade de objeto: um endereço na memória e estado conforme exigido por tipos com mutabilidade interior tais comoMutex<T>
.
Mais para Explorar
Como variĂĄveis estĂĄticas (static
) sĂŁo acessĂveis de qualquer thread, elas precisam ser Sync
. A mutabilidade interior Ă© possĂvel atravĂ©s de um Mutex
, atĂŽmico ou similar.
Dados locais da thread podem ser criados com a macro std::thread_local
.