PR3-Rust-SS26/B-basics/1-variablen.rs

31 lines
1.0 KiB
Rust

fn main() {
let x = 42; // unveränderbar (final in Java)
//x += 1; Das würde nicht funktionieren
println!("{x}");
let mut y = 24; // mut == mutable (also veränderbar)
println!("{y}");
y += 1; // Das funktioniert
println!("{y}");
let x = 187; // Shadowing: es wird eine neue Viariable mit dem selben Namen erstellt, dieser überschattet die vorherige Variable
println!("{x}");
{
// Hier sind wir in einem Block
// Wenn hier Variablen deklariert werden, sind sie außerhalb des Blocks nicht mehr verfügbar
let x = 1234; // Shadowing geht zwar auch ohne Block, aber das verdeutlicht, dass man in Blöcken Variablen deklarieren kann, die gleich heißen wie die von außerhalb
println!("{x}");
}
println!("{x}"); // Der Wert ist wieder der Alte
let x = "Typwechsel ist erlaubt!";
println!("{x}");
const KONSTANTE: i32 = 42; // Gar nicht mehr veränderbar (auch nicht durch Shadowing)
println!("{KONSTANTE}");
}