capypad
0 Tage Serie
rust / beginner
Snippet

Konstanten und statische Variablen

Konstanten (const) sind zur Kompilierzeit unveränderlich ohne feste Speicheradresse. Statische Variablen (static) haben eine feste Speicheradresse und existieren während der gesamten Programmlaufzeit. Der Zugriff auf veränderliche Statics erfordert unsafe-Blöcke wegen Datenrennen.

snippet.rs
rust
1
2
3
4
5
6
7
8
9
10
11
12
13
const MAX_SCORE: i32 = 100;
static GAME_NAME: &str = "RustQuiz";
static mut COUNTER: u32 = 0;
 
fn main() {
println!("Max score: {}", MAX_SCORE);
println!("Game: {}", GAME_NAME);
unsafe {
COUNTER += 1;
println!("Counter: {}", COUNTER);
}
}
Erklärung
1
const MAX_SCORE: i32 = 100;
Kompilierzeit-Konstante, wird überall eingefügt, wo sie verwendet wird
2
static GAME_NAME: &str
Static hat feste Speicheradresse für Programmlebensdauer
3
static mut COUNTER: u32 = 0;
Veränderliche Static benötigt unsafe für Zugriff
4
unsafe { ... }
Unsafe-Block nötig, um veränderliche Static zu modifizieren