capypad
0 Tage Serie
rust / beginner
Snippet

Konstanten vs Statische Variablen

Konstanten werden zur Kompilierzeit eingefügt und können überall verwendet werden. Statische Variablen werden an einer festen Adresse im Speicher gespeichert und existieren während der gesamten Programmdauer. Static mut erfordert unsafe-Blöcke für Zugriff aufgrund von Rusts Sicherheitsgarantien gegen Datenrennen.

snippet.rs
rust
1
2
3
4
5
6
7
8
9
10
11
const GRAVITY: f64 = 9.81;
static mut COUNTER: u32 = 0;
 
fn main() {
println!("Gravity: {}", GRAVITY);
unsafe {
COUNTER += 1;
println!("Counter: {}", COUNTER);
}
}
Erklärung
1
const GRAVITY: f64 = 9.81;
Kompilierzeit-Konstante, wird überall eingefügt wo sie verwendet wird
2
static mut COUNTER: u32 = 0;
Veränderliche statische Variable mit fester Speicheradresse
3
unsafe {
Erforderlicher Block für Zugriff auf static mut
4
COUNTER += 1;
Direkte Mutation der statischen Variable