Šta je tip Never u jeziku Dart?
sobes.tech АИ
Одговор од АИ
Tip Never je indikator da izraz nikada neće uspešno završiti. Koristi se za funkcije i metode koje ili bacaju izuzetak ili ulaze u beskonačnu petlju.
Primeri upotrebe:
-
Funkcija koja baca izuzetak:
Never _throwError(String message) { // Baca izuzetak, funkcija nikada ne vraća vrednost throw StateError(message); } -
Funkcija sa beskonačnom petljom:
Never _infiniteLoop() { // Ulazi u beskonačnu petlju, funkcija nikada ne završava while (true) { // Radi nešto } }
Glavna prednost Never je što pomaže kompajleru da razume da je kod nakon poziva takve funkcije ili metode nedostižan, što omogućava statičku analizu za otkrivanje potencijalnih grešaka, kao što su nedostižan kod i pogrešno rukovanje greškama.
Za razliku od void, koji označava da funkcija ne vraća vrednost (ali uspešno završava), Never označava da funkcija nikada neće završiti u principu.
// Funkcija koja vraća void (uspešno završava, ali bez vrednosti)
void doSomething() {
print('Radim nešto');
}
// Funkcija koja vraća Never (nikada ne uspešno završava)
Never crashAndBurn() {
throw 'O, ne!';
}
Tip Never je donji tip (bottom type), što znači da je podtip bilo kog drugog tipa. To omogućava korišćenje funkcije koja vraća Never na mestima gde se očekuje bilo koji drugi tip.