Darsliklar Dart Enumlar

Dart Dart Enumlar

Enumlar (enumerations) — cheklangan, nomlangan doimiylar to’plamini yaratadigan maxsus tur. Hafta kunlari, foydalanuvchi holati, buyurtma bosqichi — aniq, sanab o’tiladigan variantlar uchun enum ideal. U kodni o’qiladigan qiladi va noto’g’ri qiymatlarning oldini oladi.

Enumaniq, cheklangan qiymatlar to’plamini ifodalaydigan tur. Dart’da u enum kalit so’zi bilan e’lon qilinadi.

Enum e’lon qilish

Enum enum bilan e’lon qilinadi va uning qiymatlari sanab o’tiladi:

enum Holat { faol, passiv, bloklangan }

void main() {
  var foydalanuvchi = Holat.faol;
  print(foydalanuvchi);
  print(foydalanuvchi.name);
}
Holat.faol
faol

enum Holat { ... } — uch qiymatli enum. Holat.faol — aniq qiymat. .name esa uning matn nomini (faol) beradi. Endi holatni son o’rniga mazmunli nom bilan ifodalaymiz.

Enum va switch

Enum switch bilan juda yaxshi ishlaydi — har bir holat uchun aniq javob beriladi:

enum Holat { faol, passiv, bloklangan }

void main() {
  var h = Holat.bloklangan;
  switch (h) {
    case Holat.faol:
      print("Foydalanuvchi faol");
      break;
    case Holat.passiv:
      print("Foydalanuvchi passiv");
      break;
    case Holat.bloklangan:
      print("Foydalanuvchi bloklangan");
      break;
  }
}
Foydalanuvchi bloklangan

switch har bir enum qiymati uchun aniq javob berdi. Enum va switch birga ishlatilganda kod juda tushunarli bo’ladi.

Enum ning afzalligi

Enum va oddiy sonlarni solishtiramiz:

Yondashuv Kod O’qilishi
Oddiy son if (holat == 2) tushunarsiz
Enum if (holat == Holat.bloklangan) ravshan

Enum kodni o’z-o’zini hujjatlaydigan qiladi va faqat ruxsat etilgan qiymatlarni beradi — noto’g’ri son kiritib bo’lmaydi.

Barcha qiymatlarni olish

Enum ning barcha qiymatlarini .values orqali olish mumkin:

enum Kun { dushanba, seshanba, chorshanba }

void main() {
  for (var kun in Kun.values) {
    print(kun.name);
  }
}
dushanba
seshanba
chorshanba

Kun.values barcha enum qiymatlarini ro’yxat sifatida berdi, biz uni sikl bilan aylanib chiqdik. Bu barcha variantlarni ko’rsatishda foydali.

Xulosa

Bu bo’limda enum e’lon qilish, switch bilan ishlatish, uning afzalligi va .values bilan barcha qiymatlarni olishni ko’rib chiqdik. Enum aniq, cheklangan variantlar uchun ideal. Keyingi darsda asinxronizatsiya va Future ga o’tamiz.