Du versuchst, zu viel auf einmal zu machen. Da sind mehr Fehler als nur der bei `split`; das sagt mir, dass du zu viel Code geschrieben hast, bevor du das erste Mal kompiliert/getestet hast. Also wäre mein Tipp, da kleinteiliger ranzugehen. Erstmal nur einen String splitten, und dabei darüber nachdenken, was die möglichen Eingabedaten sind (alle Strings) und wie dabei das Ergebnis aussieht (zum Beispiel, wenn man `"a: b: c: d"` an `':'` splittet) und was für ein Typ dementsprechend dabei rauskommt, der die Ergebnisdaten für alle Eingabedaten repräsentieren kann (warum kann es kein zweielementiges Tupel sein?). Und als kleiner Tipp noch ein Link auf die Doku von `str::split`. Vielleicht gibt es da ja noch andere (ähnliche?) Methoden, die besser zu dem Problem passen, das du lösen willst?Dennis89 hat geschrieben: Montag 22. September 2025, 19:53 Ich kann von mir erfahrungsgemäß sagen, dass ich mich da "immer" in die falsche Richtung verrenne und bitte euch daher wieder um Hilfe.
Dann das zweite Split an den Leerzeichen. Dann das beides in eine Funktion packen und die Funktion dann für jede Zeile aufrufen. Und so weiter... Und nach jedem kleinen Schritt zumindest kompilieren, damit du möglichst früh Typfehler findest und nicht in Folgefehler läufst.
Spoiler: So würde ich mit minimalen Änderungen deinen Code kompilierbar machen: https://godbolt.org/z/x5adcrKKM und so sieht meine Lösung von letztem Jahr aus (Tag 7?): https://godbolt.org/z/WWshvdP63
Ach und weil du von tuple unpacking schreibst: Das ist ein Python-Begriff, das gibt es so in Rust nicht. In Python kann man jedes Iterable unpacken und bekommt eine Exception, wenn die Länge nicht passt. In Rust gibt es Pattern Matching; und da muss der Typ des Patterns auf den Typ des Wertes passen. Mit einem Tuple-Pattern kann man also nur (von der Länge und von den Elementtypen passende) Tuples matchen. Und `let` macht Pattern Matching.