Sobes.tech
Middle

Dart tilida Never turi nima?

sobes.tech AI

AIdan javob

Never turi, hech qanday muvaffaqiyat bilan yakunlanmaydigan ifoda ekanligini ko'rsatadigan indikatordir. U funksiyalar va metodlar uchun ishlatiladi, ular yoki istisno chiqaradi yoki cheksiz siklga kiradi.

Foydalanish misollari:

  • Istisno chiqaradigan funksiya:

    Never _throwError(String message) {
      // Istisno chiqaradi, funksiya hech qachon qiymat qaytarmaydi
      throw StateError(message);
    }
    
  • Cheksiz sikl bilan funksiya:

    Never _infiniteLoop() {
      // Cheksiz siklga kiradi, funksiya hech qachon tugamaydi
      while (true) {
        // Biror narsa qilamiz
      }
    }
    

Never ning asosiy afzalligi shundaki, u kompilatorga bu turdagi funksiya yoki metod chaqirilgandan keyin kodning erishib bo'lmasligini tushunishga yordam beradi, bu esa potentsial xatolarni aniqlash uchun statik tahlilni amalga oshirish imkonini beradi, masalan, erishib bo'lmaydigan kod va noto'g'ri xato bilan ishlash.

void bilan farqli o'laroq, bu funksiya qiymat qaytarmasligini (lekin muvaffaqiyat bilan tugashini) bildiradi, Never esa funksiyaning hech qachon tugamayishini anglatadi.

// Qiymat qaytarmaydigan, muvaffaqiyat bilan tugash funksiyasi
void doSomething() {
  print('Biror narsa qilish');
}

// Never qaytargan funksiya (hech qachon muvaffaqiyat bilan tugamaydi)
Never crashAndBurn() {
  throw 'Oh yo'q!';
}

Never turi pastki tur (bottom type) bo'lib, u har qanday boshqa turning subtipidir. Bu Never qaytargan funksiyani istalgan boshqa tur kutiladigan joylarda ishlatish imkonini beradi.