it-praxisportal/courses/rust/09_traits_und_shared_behavior
Alex Mueller 2571cb8847 feat(ux): responsive kurs-sidebar und kapitel-drawer für alle 13 kurse & web-ide
- Dynamic Sidebar mit window.COURSES_MANIFEST für 13 Kurse (216 Kapitel)
- Kurswechsler Dropdown mit Direktnavigation
- Fortschrittsanzeige mit Solved-Checkmarks (✓) aus localStorage
- Responsive Off-Canvas Drawer mit Floating Action Button (☰ Kapitel) & Backdrop auf Mobile/Tablets
- Web-IDE Topbar Drawer-Button (☰ Kapitel) für unterbrechungsfreien Vollbild-Editor
- Saubere Bereinigung redundanter statischer Legacy-Sidebars
2026-09-12 13:49:46 +02:00
..
aufgabe.rs IHK AP1 & AP2 (FISI) Crashkurse: Vollständige Lernfeld-Module (LF 1-12), 150 IHK-Prüfungsfragen, interaktive Prüfungs-Engine und Multi-Sprachen-Erweiterung (PDFs excluded) 2026-09-10 07:43:39 +02:00
index.html feat(ux): responsive kurs-sidebar und kapitel-drawer für alle 13 kurse & web-ide 2026-09-12 13:49:46 +02:00
musterloesung.rs IHK AP1 & AP2 (FISI) Crashkurse: Vollständige Lernfeld-Module (LF 1-12), 150 IHK-Prüfungsfragen, interaktive Prüfungs-Engine und Multi-Sprachen-Erweiterung (PDFs excluded) 2026-09-10 07:43:39 +02:00
README.md IHK AP1 & AP2 (FISI) Crashkurse: Vollständige Lernfeld-Module (LF 1-12), 150 IHK-Prüfungsfragen, interaktive Prüfungs-Engine und Multi-Sprachen-Erweiterung (PDFs excluded) 2026-09-10 07:43:39 +02:00
test_aufgabe.rs IHK AP1 & AP2 (FISI) Crashkurse: Vollständige Lernfeld-Module (LF 1-12), 150 IHK-Prüfungsfragen, interaktive Prüfungs-Engine und Multi-Sprachen-Erweiterung (PDFs excluded) 2026-09-10 07:43:39 +02:00

Rust 09: Traits & Shared Behavior

In diesem Modul lernst du, wie Rust Polymorphie und gemeinsame Schnittstellen ohne klassische Vererbung abbildet: Traits.


🎯 Lernziele

  1. Traits definieren: Methodensignaturen mit pub trait MyTrait festlegen.
  2. Default-Implementierungen: Standardverhalten in Traits bereitstellen und selektiv überschreiben.
  3. impl Trait for Type: Traits für benutzerdefinierte Structs implementieren.
  4. Trait Bounds (T: Trait1 + Trait2): Typsichere Einschränkungen für generische Funktionen und where-Klauseln.
  5. impl Trait als Rückgabetyp: Kapselung konkreter Typen bei statischem Dispatch.

💡 Schlüsselkonzepte

1. Trait-Definition & Default-Methoden

pub trait TelemetryReport {
    fn summary(&self) -> String;

    // Default-Implementierung
    fn severity_level(&self) -> u8 {
        1
    }

    fn is_critical(&self) -> bool {
        self.severity_level() >= 8
    }
}

2. Trait Bounds & Where-Klauseln

// Kompakte Syntax
fn print_report<T: TelemetryReport + std::fmt::Display>(item: &T) {
    println!("{}: {}", item, item.summary());
}

// Lesbar bei vielen Typen mit where-Klausel
fn process<T, U>(t: &T, u: &U)
where
    T: TelemetryReport + Clone,
    U: std::fmt::Debug,
{
    println!("{:?} => {}", u, t.summary());
}

🧪 Tests ausführen

# Mit rustc direkt kompilieren und ausführen
rustc --test test_aufgabe.rs && ./test_aufgabe

# Oder im Kurs-Workspace ausführen