Qu'est-ce que le type Never dans le langage Dart?
sobes.tech IA
Réponse de l'IA
Le type Never indique qu'une expression ne se terminera jamais avec succès. Il est utilisé pour les fonctions et méthodes qui lancent une exception ou entrent dans une boucle infinie.
Exemples d'utilisation :
-
Fonction qui lance une exception :
Never _throwError(String message) { // Lance une exception, la fonction ne retourne jamais de valeur throw StateError(message); } -
Fonction avec une boucle infinie :
Never _infiniteLoop() { // Entre dans une boucle infinie, la fonction ne se termine jamais while (true) { // Faire quelque chose } }
L'avantage principal de Never est qu'il aide le compilateur à comprendre que le code après l'appel à cette fonction ou méthode est inaccessible, ce qui permet une analyse statique pour détecter des erreurs potentielles, comme du code inaccessible et une gestion incorrecte des erreurs.
Contrairement à void, qui indique qu'une fonction ne retourne pas de valeur (mais se termine avec succès), Never indique que la fonction ne se terminera jamais en principe.
// Fonction qui retourne void (se termine avec succès, mais sans valeur)
void doSomething() {
print('Fais quelque chose');
}
// Fonction qui retourne Never (ne se termine jamais avec succès)
Never crashAndBurn() {
throw 'Oh non!';
}
Le type Never est un type inférieur (bottom type), c'est-à-dire qu'il est un sous-type de tout autre type. Cela permet d'utiliser une fonction retournant Never à des endroits où un autre type est attendu.