Cos'è il tipo Never nel linguaggio Dart?
sobes.tech AI
Risposta dell'AI
Il tipo Never è un indicatore che un'espressione non terminerà mai con successo. È usato per funzioni e metodi che o lanciano un'eccezione o entrano in un ciclo infinito.
Esempi di utilizzo:
-
Funzione che lancia un'eccezione:
Never _throwError(String message) { // Lancia un'eccezione, la funzione non restituisce mai un valore throw StateError(message); } -
Funzione con ciclo infinito:
Never _infiniteLoop() { // Entra in un ciclo infinito, la funzione non termina mai while (true) { // Fai qualcosa } }
Il principale vantaggio di Never è che aiuta il compilatore a capire che il codice dopo la chiamata a questa funzione o metodo è inaccessibile, consentendo un'analisi statica per individuare errori potenziali, come codice inaccessibile e gestione errata degli errori.
A differenza di void, che indica che la funzione non restituisce valore (ma termina con successo), Never indica che la funzione non terminerà mai in linea di principio.
// Funzione che restituisce void (termina con successo, ma senza valore)
void doSomething() {
print('Fare qualcosa');
}
// Funzione che restituisce Never (non termina mai con successo)
Never crashAndBurn() {
throw 'Oh no!';
}
Il tipo Never è un tipo inferiore (bottom type), cioè è un sottotipo di qualsiasi altro tipo. Questo permette di usare una funzione che restituisce Never in luoghi dove ci si aspetta qualsiasi altro tipo.