Basics angefangen

main
Semih Uguz 2026-05-25 23:51:55 +02:00
parent 183c9c0426
commit 951dbce120
4 changed files with 87 additions and 1 deletions

View File

@ -1,3 +1,4 @@
fn main() {
println!("Hello World!");
// Kommentare wie gewohnt mit 2 Slashes
println!("Hello World!"); // Dies ist ein Makro für die Konsolenausgabe
}

View File

@ -0,0 +1,30 @@
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}");
}

View File

@ -0,0 +1,37 @@
fn main() {
// Ganzzahlen
let integer: i32 = -420; // Es gibt Integer mit unterschiedlicher Bitlänge (8, 16, 32, 64, 128 oder architekturspezifisch (isize))
println!("{integer}");
let unsigned: u32 = 420; // Unsigned Integer mit unterschiedlicher Bitlänge (8, 16, 32, 64, 128 oder architekturspezifisch (usize))
println!("{unsigned}");
// Integer Literale geben unterschiedliche Zahlensysteme an
let integer = 98_765; // Dezimal (Unterstriche als Trennzeichen erlaubt)
println!("{integer}");
let hexadezimal = 0xff;
println!("{hexadezimal}");
let oktal = 0o77;
println!("{oktal}");
let binaer = 0b1010_1010;
println!("{binaer}");
let byte = b'A';
println!("{byte}");
// Gleitkommazahlen
let einfach: f32 = 3.14; // Einfache Genauigkeit (wie float in Java)
println!("{einfach}");
let doppelt: f64 = 3.14159265359; // Doppelte Genauigkeit (wie double in Java) -- Standardwert
println!("{doppelt}");
let boolean: bool = true; // Boolean (true oder false)
println!("{boolean}");
println!("{}", !boolean); // Wert negieren
let zeichen: char = 'a'; // Character
println!("{zeichen}");
}

View File

@ -0,0 +1,18 @@
fn main() {
let string: &str = "Das ist ein String!";
println!("{string}");
let tupel = (42, "Das hier ist ein Tupel!", true);
let (a, b, c) = tupel;
println!("{}, {}, {}", a, b, c);
let array: [&str; 5] = ["Das", " ist", " ein", " Array", "!"]; // Es wird explizit gesagt, welche Größe es hat
println!("{:?}", array); // Das wird auch später erklärt
let array = [1, 2, 3, 4, 5, 6]; // Größe wird dynamisch bestimmt
println!("{:?}", array);
let element = array[0]; // Man kann die Elemente wie gewohnt ansprechen
println!("{}", element);
println!("{}", array.len()); // Länge kann ausgegeben werden
}