Kas yra Never tipas Dart kalboje?
sobes.tech AI
Atsakymas iš AI
Never tipas yra indikatorius, kad išraiška niekada nesibaigs sėkmingai. Jis naudojamas funkcijoms ir metodams, kurie arba meta išimtį, arba įstringa begaliniame cikle.
Naudojimo pavyzdžiai:
-
Funkcija, kuri meta išimtį:
Never _throwError(String message) { // Meta išimtį, funkcija niekada negrąžina reikšmės throw StateError(message); } -
Funkcija su begaliniu ciklu:
Never _infiniteLoop() { // Įstringa begaliniame cikle, funkcija niekada nesibaigia while (true) { // Daryk kažką } }
Pagrindinis Never pranašumas yra tas, kad jis padeda kompiliatoriui suprasti, kad kodas po tokios funkcijos ar metodo iškvietimo yra nepasiekiamas, kas leidžia atlikti statinę analizę ir aptikti galimas klaidas, pavyzdžiui, nepasiekiamą kodą ir klaidingą klaidų apdorojimą.
Skirtingai nuo void, kuris reiškia, kad funkcija negrąžina reikšmės (bet sėkmingai baigiasi), Never reiškia, kad funkcija niekada nesibaigs iš esmės.
// Funkcija, kuri grąžina `void` (sėkmingai baigiasi, bet be reikšmės)
void doSomething() {
print('Darau kažką');
}
// Funkcija, kuri grąžina `Never` (niekada nesibaigia sėkmingai)
Never crashAndBurn() {
throw 'O, ne!';
}
Never tipas yra apatinis tipas (bottom type), tai yra, jis yra bet kurio kito tipo subtipas. Tai leidžia naudoti funkciją, grąžinančią Never, vietose, kur laukiamas bet kuris kitas tipas.