Was ist der Typ Never in der Dart-Sprache?
sobes.tech KI
Antwort von AI
Der Typ Never ist ein Indikator dafür, dass ein Ausdruck niemals erfolgreich beendet wird. Er wird für Funktionen und Methoden verwendet, die entweder eine Ausnahme auslösen oder in eine unendliche Schleife geraten.
Beispiele für die Verwendung:
-
Funktion, die eine Ausnahme auslöst:
Never _throwError(String message) { // Löst eine Ausnahme aus, die Funktion gibt niemals einen Wert zurück throw StateError(message); } -
Funktion mit einer Endlosschleife:
Never _infiniteLoop() { // Betritt eine Endlosschleife, die Funktion endet niemals while (true) { // Mach etwas } }
Der Hauptvorteil von Never ist, dass er dem Compiler hilft zu verstehen, dass der Code nach dem Aufruf einer solchen Funktion oder Methode unerreichbar ist, was eine statische Analyse zur Erkennung potenzieller Fehler ermöglicht, z.B. unerreichbarer Code und falsche Fehlerbehandlung.
Im Gegensatz zu void, was bedeutet, dass die Funktion keinen Wert zurückgibt (aber erfolgreich endet), bedeutet Never, dass die Funktion niemals in der Regel endet.
// Funktion, die void zurückgibt (endet erfolgreich, aber ohne Wert)
void doSomething() {
print('Etwas tun');
}
// Funktion, die Never zurückgibt (endet niemals erfolgreich)
Never crashAndBurn() {
throw 'Oh nein!';
}
Der Typ Never ist ein unterer Typ (bottom type), das heißt, er ist ein Untertyp von jedem anderen Typ. Dies ermöglicht die Verwendung einer Funktion, die Never zurückgibt, an Stellen, an denen jeder andere Typ erwartet wird.