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.

This slide should take about 5 minutes.
  • 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 como Mutex<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.