Teil 14: Arrays, Tupel und Vektoren
Lernziel: Mehrere Werte verwalten.
Voraussetzungen: Die vorherigen Lektionen, insbesondere Teil 13.
Worum geht es?
Mehrere Messwerte kannst du in Arrays fester Größe oder in veränderbaren Vektoren speichern.
Schritt für Schritt
fn main() {
let startwerte = [200.0, 205.0, 210.0];
let messpaar = ("Nozzle", 210.0);
println!("{}: {} °C", messpaar.0, messpaar.1);
let mut messungen: Vec<f64> = Vec::new();
for wert in startwerte { messungen.push(wert); }
messungen.push(207.5);
for (index, wert) in messungen.iter().enumerate() {
println!("{}: {:.1} °C", index + 1, wert);
}
}
Ein Array [T; N] hat eine feste Länge. Ein Vec<T> kann wachsen. Ein Tupel (T1, T2) kann verschiedene Typen kombinieren.
Sicher zugreifen
let werte = vec![10, 20, 30];
if let Some(wert) = werte.get(5) {
println!("{wert}");
} else {
println!("Index existiert nicht");
}
get() liefert bei ungültigem Index None, statt einen Panikfehler beim Indexzugriff auszulösen.
Selbst ausprobieren
Lege fünf Temperaturen in einem Vektor ab und gib Anzahl, Summe und Mittelwert aus.
Musterlösung anzeigen
fn main() {
let temperaturen = vec![201.0, 204.0, 207.0, 209.0, 211.0];
let summe: f64 = temperaturen.iter().sum();
let mittelwert = summe / temperaturen.len() as f64;
println!("{} Werte, Summe {summe}, Mittelwert {mittelwert:.1}", temperaturen.len());
}
Das solltest du mitnehmen
- Mehrere Werte verwalten.
- Nutze
cargo runfür das Ausführen undcargo checkfür eine schnelle Fehlerprüfung (ab Teil 4). - Experimentiere mit veränderten Werten und beobachte die Compilermeldungen.
