Ինչ է Never տիպը Dart լեզվում?
sobes.tech AI
Պատասխան AI-ից
Never տիպը ցույց է տալիս, որ արտահայտությունը երբեք չի ավարտվի հաջողությամբ: Այն օգտագործվում է այն ֆունկցիաների և մեթոդների համար, որոնք կամ նետում են արտահայտում, կամ մտնում են անսահման ցիկլ:
Օգտագործման օրինակներ:
-
Ֆունկցիա, որը նետում է արտահայտում:
Never _throwError(String message) { // Նետում է արտահայտում, ֆունկցիան երբեք չի վերադարձնում արժեք throw StateError(message); } -
Անսահման ցիկլով ֆունկցիա:
Never _infiniteLoop() { // Մուտք է գործում անսահման ցիկլ, ֆունկցիան երբեք չի ավարտվում while (true) { // Ինչ-որ բան անել } }
Never-ի հիմնական առավելությունը այն է, որ այն օգնում է կոմպիլատորին հասկանալ, որ այդպիսի ֆունկցիայի կամ մեթոդի կանչից հետո կոդը հասանելի չէ, ինչը թույլ է տալիս ստատիկ վերլուծություն՝ հնարավոր սխալների հայտնաբերման համար, օրինակ՝ հասանելի չլինող կոդ և սխալ թերամշակում:
Տարբեր void-ից, որը նշանակում է, որ ֆունկցիան չի վերադարձնում արժեք (բայց հաջողությամբ ավարտվում է), Never-ը նշանակում է, որ ֆունկցիան ոչ երբեք չի ավարտվի հիմնականում:
// Ֆունկցիա, որը վերադարձնում է void (հաջողությամբ ավարտվում է, բայց առանց արժեքի)
void doSomething() {
print('Կատարում եմ ինչ-որ բան');
}
// Ֆունկցիա, որը վերադարձնում է Never (ոչ երբեք չի հաջող ավարտվում)
Never crashAndBurn() {
throw 'Օհ ոչ!';
}
Տիպ Never-ը ստորին տիպ է (bottom type), այսինքն՝ այն ենթատիպ է ցանկացած այլ տիպի: Սա թույլ է տալիս օգտագործել Never-ը վերադարձնող ֆունկցիան այն վայրերում, որտեղ սպասվում է ցանկացած այլ տիպ։