Rust Grundlagen auf dem PC · Teil 18TutorialEinsteiger

Rust

Rust Grundlagen 18: Traits und Generics

Wiederverwendbare Schnittstellen. Verständliche Rust-Lektion mit Beispielen, Übung und Musterlösung.

Kapitel: Programme strukturieren

Veröffentlicht am

Teil 18: Traits und Generics

Lernziel: Wiederverwendbare Schnittstellen.

Voraussetzungen: Die vorherigen Lektionen, insbesondere Teil 17.

Worum geht es?

Mit Generics formulierst du Code für mehrere Typen. Traits beschreiben gemeinsames Verhalten.

Schritt für Schritt

use std::fmt::Display;

fn zeige_wert<T: Display>(name: &str, wert: T) {
    println!("{name}: {wert}");
}

fn main() {
    zeige_wert("Temperatur", 205);
    zeige_wert("Material", "PLA");
}

T ist ein Platzhalter für einen Typ. T: Display verlangt, dass Werte dieses Typs angezeigt werden können.

Eigenes Trait

trait Beschreibbar {
    fn beschreibung(&self) -> String;
}

struct Sensor { name: String }

impl Beschreibbar for Sensor {
    fn beschreibung(&self) -> String {
        format!("Sensor: {}", self.name)
    }
}

Traits ähneln Schnittstellen in anderen Sprachen. derive kann häufig verwendete Traits für eine Struktur automatisch implementieren, beispielsweise #[derive(Debug)].

Dieses Kapitel ist ein Einstieg, keine vollständige Einführung in generische Programmierung.

Selbst ausprobieren

Erstelle ein generisches zeige_wert und rufe es einmal mit einem Integer und einmal mit einer Fließkommazahl auf.

Musterlösung anzeigen
use std::fmt::Display;
fn zeige_wert<T: Display>(wert: T) { println!("Wert: {wert}"); }
fn main() {
    zeige_wert(42);
    zeige_wert(21.5);
}

Das solltest du mitnehmen

  • Wiederverwendbare Schnittstellen.
  • Nutze cargo run für das Ausführen und cargo check für eine schnelle Fehlerprüfung (ab Teil 4).
  • Experimentiere mit veränderten Werten und beobachte die Compilermeldungen.

Weiterführende Quellen


← Vorheriger Teil | Kursübersicht | Nächster Teil →