Grundlagen
Alle ansehen- 01 Grundlagen Der Einstieg in Rust — Sprache, Toolchain, erstes Programm
- 02 Was ist Rust? Systemnahe Sprache mit Memory Safety ohne Garbage Collector
- 03 Installation mit rustup rustup als Toolchain-Manager — stable, beta, nightly nebeneinander
- 04 Erstes Programm Hello World mit rustc und Cargo, Anatomie von main.rs
- 05 Cargo-Grundlagen Cargo als Build- und Paketmanager — Projekte, Dependencies, Profile
- 06 Projektstruktur Wie ein Rust-Projekt auf der Festplatte aussieht und warum
- 07 Editionen 2015 / 2018 / 2021 / 2024 Was Editionen sind, was sie ändern und wie du migrierst
- 08 Compiler und Fehlerlesen Wie eine rustc-Diagnose aufgebaut ist und wie man sie nutzt
Variablen & Bindungen
Alle ansehen- 01 Variablen & Bindungen Wie Werte in Rust an Namen kommen — und warum let keine Variable ist
- 02 let-Bindung let bindet einen Namen an einen Wert — keine klassische Variable
- 03 mut und Immutability Default immutable, mit mut explizit veränderbar — drei Ebenen
- 04 Shadowing Eine neue Bindung mit altem Namen — mit oder ohne Typ-Wechsel
- 05 const vs. static Zwei Wege, zur Compile-Zeit feste Werte auszudrücken
- 06 Type Inference Wie der Compiler in 90 % aller Fälle den Typ selbst kennt
- 07 Scoping und Blocks Jede Schweifklammer ist ein Scope — und gleichzeitig eine Expression
Primitive Datentypen
Alle ansehen- 01 Primitive Datentypen Die eingebauten Basistypen — und ihre besonderen Eigenheiten
- 02 Integer-Typen Zehn Integer-Familien, klare Bitbreiten, deterministischer Overflow
- 03 Float-Typen f32 und f64 nach IEEE 754 — mit allen Eigenheiten
- 04 bool Wirklich nur zwei Werte — kein automatisches Casten
- 05 char Vier Bytes Unicode-Scalar — nicht zu verwechseln mit Byte
- 06 Tuple Heterogene Bündel mit fester Größe — ohne Feldnamen
- 07 Array Stack-allokierte, homogene Sequenz mit Compile-Zeit-Länge
- 08 Slice View über zusammenhängenden Speicher — ohne Eigentum
- 09 Unit und Never Die zwei besonderen Typen — () und !
- 10 Numeric Conversions Drei Wege, zwischen Zahlentypen zu konvertieren — mit klaren Trade-offs
Strings & Text
Alle ansehen- 01 Strings & Text Wie Rust mit Text umgeht — UTF-8 strikt, zwei Typen statt einem
- 02 str vs. String Zwei String-Typen, klare Aufgaben — und ein Trick zur API-Wahl
- 03 String-Slicing und Bytes Slicing in UTF-8 — wo Byte- und Zeichen-Indices auseinander gehen
- 04 UTF-8 und char-Iteration Drei Wege durch einen String — bytes, chars, Grapheme
- 05 Das format!-Makro Compile-Time-validierte Formatierung — von Padding bis Hex
- 06 Parsing und Konvertierung Strings in andere Typen — und umgekehrt
- 07 Cow<str> Mal Referenz, mal owned — Allokation nur wenn nötig
Kontrollfluss
Alle ansehen- 01 Kontrollfluss Bedingungen, Schleifen, Pattern-Shortcuts — alle als Expressions
- 02 if als Expression Bedingungen, die Werte liefern — kein ternärer Operator nötig
- 03 loop mit Wert-Rückgabe Endlos-Schleife — und die einzige mit Wert über break
- 04 while Bedingung am Schleifen-Anfang — plus die while let-Variante
- 05 for und Range Die idiomatische Iteration — auf jedem IntoIterator
- 06 break, continue, Labels Schleifen beenden, überspringen, mit Labels gezielt steuern
- 07 if let und let else Pattern-Matches kompakt — und mit garantiertem Ausstieg