E0308E0308 — Rückgabetyp des Closures stimmt nicht überein
Das Closure gibt einen anderen Typ zurück als der Kontext erwartet.
Was verursacht diesen Fehler
Von einem Closure wird ein bestimmter Rückgabetyp erwartet (basierend auf der Funktion, an die es übergeben wird), aber der Closure-Rumpf gibt einen anderen Typ zurück. Dies tritt häufig bei .map(), .filter() und ähnlichen Iterator-Methoden auf.
So beheben Sie ihn
Prüfen Sie den erwarteten Rückgabetyp der Funktion, die das Closure entgegennimmt. Konvertieren Sie den Rückgabewert in den erwarteten Typ. Stellen Sie sicher, dass alle Zweige des Closures denselben Typ zurückgeben.
Verwandte Fehlercodes
E0621E0621 — Explizite Lifetime erforderlich
Ein Funktionsparameter benötigt eine explizite Lifetime-Annotation, um den Borrow Checker zu erfüllen.
E0507E0507 — Wert kann nicht aus ausgeliehener Referenz verschoben werden
Sie versuchen, einen Wert aus einer Referenz zu verschieben, was die Referenz ungültig hinterlassen würde.
E0369E0369 — Operator kann nicht auf Typ angewendet werden
Ein binärer Operator wird mit Typen verwendet, die ihn nicht unterstützen.
E0425E0425 — Wert in diesem Gültigkeitsbereich nicht gefunden
Ein Bezeichner wird verwendet, ist aber im aktuellen Gültigkeitsbereich nicht definiert.
E0106E0106 — Fehlender Lifetime-Bezeichner
Einer Referenz in einer Funktionssignatur oder einem Struct fehlt ein Lifetime-Parameter.
clippy::unwrap_usedClippy — Unwrap verwendet
Die Methode unwrap() wird verwendet, was zur Laufzeit zu einem Panic führen kann.