static
Статичні змінні будуть жити протягом усього часу виконання програми, тому не будуть переміщатися:
static BANNER: &str = "Ласкаво просимо до RustOS 3.14"; fn main() { println!("{BANNER}"); }
Як зазначено в Книзі Rust RFC, вони не підставляються під час використання та мають реальну асоційовану ділянку пам’яті. Це корисно для небезпечного та вбудованого коду, і змінна живе протягом усього виконання програми. Якщо значення глобальної області видимості не потребує ідентичності об’єкта, перевага надається const.
This slide should take about 5 minutes. 
                    staticсхожий на мутабельні глобальні змінні в C++.staticзабезпечує ідентичність об’єкта: адресу в пам’яті та стан відповідно до типів із внутрішньою змінністю, таких якMutex<T>.
Більше інформації для вивчення
Оскільки static змінні доступні з будь-якого потоку, вони повинні бути Sync. Внутрішня змінність можлива через Mutex, atomic або подібні до них.
Локальні дані потоку можна створити за допомогою макросу std::thread_local.