32 lines
1.0 KiB
Rust
32 lines
1.0 KiB
Rust
fn main() {
|
|
// Variablen werden mit let eingeleitet
|
|
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}");
|
|
}
|