Menu
Coddy logo textTech

Was ist ein 'Option'?

Teil des Abschnitts Logic & Flow der Rust-Journey von Coddy — Lektion 35 von 66.

In der Programmierung begegnen Ihnen häufig Situationen, in denen ein Wert vorhanden sein kann oder auch nicht. Zum Beispiel könnte die Suche nach einem Element in einer Liste das Element finden, oder es existiert überhaupt nicht. Traditionelle Programmiersprachen verwenden oft spezielle Werte wie null oder -1, um „Nichts“ darzustellen, aber dieser Ansatz kann zu Fehlern und Abstürzen führen.

Rust verfolgt einen anderen Ansatz mit dem Option<T>-Enum. Dies ist ein integrierter Typ, der explizit die Möglichkeit des Fehlens darstellt. Anstatt zu raten, ob ein Wert existiert, zwingt Rust Sie dazu, beide Fälle im Voraus zu behandeln.

Das Option-Enum hat genau zwei Varianten:

Some(value)  // Enthält einen Wert
None         // Enthält keinen Wert

Wenn eine Funktion möglicherweise keinen Wert zurückgibt, gibt sie ein Option zurück. Wenn ein Wert zurückgegeben werden soll, verpackt sie ihn in Some. Wenn kein Wert vorhanden ist, gibt sie None zurück.

Dies macht das potenzielle Fehlen im Typsystem explizit und verhindert, dass Sie versehentlich einen Wert verwenden, der nicht existiert.

Sie haben Option bereits in Aktion mit der .get()-Methode von Hash-Maps gesehen – sie gibt Some(&value) zurück, wenn ein Schlüssel existiert, oder None, wenn dies nicht der Fall ist. Dieses Muster taucht überall in Rust auf und macht Ihren Code sicherer und vorhersehbarer.

quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Spickzettel

Das Option<T>-Enum repräsentiert einen Wert, der vorhanden sein kann oder auch nicht, wodurch Fehler durch die Verwendung nicht existierender Werte verhindert werden.

Es hat zwei Varianten:

Some(value)  // Enthält einen Wert
None         // Enthält keinen Wert

Funktionen, die möglicherweise keinen Wert zurückgeben, verwenden Option. Zum Beispiel gibt die .get()-Methode einer Hash-Map Some(&value) zurück, wenn ein Schlüssel existiert, oder None, wenn dies nicht der Fall ist.

Probier es selbst

Diese Lektion enthält keine Programmieraufgabe.

quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Logic & Flow