Skip to content
Zurück zu den Lernmaterialien

Modul 1 — Installation, Cargo & dein erstes Programm

5. September 2026~2 min read
Lektion von 0/ abgeschlossen
Modul 1 — Getting Started

Warum Rust & die Installation

Rust ist eine Systemsprache mit Garantien: kein Buffer Overflow, keine Data Race, kein use-after-free — und das alles zur Compile-Zeit, ohne Garbage Collector. Deshalb nutzen Rust die Linux-Kernel-Entwickler, Cloudflare, Dropbox und die meisten der am meisten geliebten Sprach-Umfragen.

Installation mit rustup

Der offizielle Weg ist rustup — ein Toolchain-Manager, der den Compiler rustc, das Build-Tool cargo und die Standardbibliothek-Doku installiert und auf dem neuesten Stand hält:

# Linux / macOS / WSL
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

# Windows: rustup-init.exe von https://rustup.rs

Danach prüfen:

rustc --version
cargo --version

📝 Schnellprüfung

Wofür ist rustup zuständig?

Merkliste:

  • rustup = Werkzeugkasten-Verwaltung
  • rustc = der Compiler selbst
  • cargo = Projekt-Baukasten (Build, Test, Abhängigkeiten)
Lektion von 0/ abgeschlossen
Modul 1 — Getting Started

Cargo: new, check, run

Ein Rust-Projekt heißt crate. Cargo legt es an, baut es, testet es:

cargo new hello_rust
cd hello_rust
cargo run     # bauen + ausführen
cargo check   # nur typprüfen, keine Binary — sehr schnell
cargo build   # bauen, Binary liegt in target/debug/

cargo check ist dein Dauerbegleiter beim Schreiben: Es durchläuft Parsing, Typprüfung und Borrow-Checker, erzeugt aber kein ausführbares Programm — deshalb ist es deutlich schneller als cargo build.

Check vs. Build

cargo check = ganze Compiler-Pipeline bis auf Codegenerierung und Linking. Perfekter Feedback-Loop im Editor (rust-analyzer nutzt genau das). cargo build brauchst du erst, wenn du das Programm wirklich starten willst.

📝 Schnellprüfung

Warum nutzt man während des Schreibens meist cargo check statt cargo build?

Lektion von 0/ abgeschlossen
Modul 1 — Getting Started

Hello World & println!-Formatierung

src/main.rs nach cargo new:

fn main() {
    println!("Hello, world!");
}
  • fn main() — Einstiegspunkt jedes ausführbaren Programms
  • println! — ein Makro (erkennbar am !), kein Funktionsaufruf

Platzhalter

Rust kennt zwei Formatierungsarten — inline nach Variablenname und positional:

fn main() {
    let name = "Rust";
    println!("Hello, {name}!");        // inline: greift die Bindung `name`
    println!("{} + {} = {}", 1, 2, 3); // positional: der Reihe nach
}

Beide Zeilen geben Hello, Rust! bzw. 1 + 2 = 3 aus. Inline-Formatierung funktioniert mit jeder Bindung im Scope — super lesbar, deshalb der Alltagsstil in modernem Rust.

Warum ein Ausrufezeichen?

println! ist ein Makro: Der Compiler übersetzt den Format-String zur Compile-Zeit in echten Code. Deshalb fliegt dir ein Tippfehler im Platzhalter nicht zur Laufzeit um die Ohren, sondern sofort beim Kompilieren.

Übung: Dein erstes Programm

🧩 Übung m1-l3-e1

🔮 Vorhersage: Was passiert beim Ausführen?

Editor wird geladen…
KI-Tutor (sokratisch — keine Komplettlösungen)
Lektion von 0/ abgeschlossen
Modul 1 — Getting Started

Variablen, Mutabilität & Ausdrücke

Variablen sind standardmäßig unveränderlich:

fn main() {
    let x = 5;
    // x = 6;        // ❌ E0384: cannot assign twice to immutable variable
    let mut y = 5;
    y = 6;           // ✅ explizit veränderlich
    println!("{x} {y}");
}

Das ist eine Design-Entscheidung, keine Bevormundung: Unveränderlichkeit ist der Normalfall, Mutabilität muss man hinschreiben — wer Code liest, sieht so sofort, wo sich etwas ändern kann.

Blöcke sind Ausdrücke

Ein Block in geschweiften Klammern wertet zu seinem letzten Ausdruck aus — ohne Semikolon:

fn main() {
    let y = {
        let a = 2;
        a * 3      // kein Semikolon → Wert des Blocks
    };
    println!("{y}"); // 6
}

Genau dieses Prinzip macht später Funktionskörper, if-Ausdrücke und match zu Wert-Lieferanten. Das Semikolon ist in Rust kein Zeilenende, sondern ein Operator, der einen Ausdruck zu einer Anweisung macht (und dabei den Wert wegwirft).

Übungen: Compiler-Fehler entziffern

🧩 Übung m1-l4-e1

🔮 Vorhersage: Was passiert beim Ausführen?

Editor wird geladen…
KI-Tutor (sokratisch — keine Komplettlösungen)

🧩 Übung m1-l4-e2

🔮 Vorhersage: Was passiert beim Ausführen?

Editor wird geladen…
KI-Tutor (sokratisch — keine Komplettlösungen)

✅ Wichtige Erkenntnisse

Haken setzen, um deinen Lernfortschritt zu markieren:

    Modul-Checkpoint

    80 % bestehen das Modul. Der Versuch zählt — bestehende Fragen werden nicht angezeigt, erst nach dem Absenden gibt es Auflösung und Erklärung.

    Checkpoint: Modul 1

    Bestehensgrenze: 80 %. Der Versuch wird bewertet und zählt für das Modul-Gate.

    Bereit, dein Wissen zu testen?

    Probiere unsere Übungsprüfungen mit Hunderten von realistischen Fragen aus.

    Üben starten →

    This site uses essential cookies for Stripe payments. No tracking cookies.