Dart Enumlar

Enum – o’zida nomlangan o’zgarmaslarni saqlovchi va shu asosida sonli qiymatlar sanog’ini ifodalovchi ma’lumot turi.

enum so’zi bu “enumerations” qisqartmasi bo’lib “maxsus sanab o’tilgan” degan ma’noni anglatadi.

Bu turdagi obyekt enum kalit so’zi orqali yaratiladi va uning elementlari vergul bilan ajratib yoziladi:

enum enum_nomi {
// nomli_qiymatlar
// ...
}
Bu turdagi o’zgaruvchini yaratib ko’raylik endi:
enum saytlar {
uzbekdevs,
uzbekcoders,
uzbekdevelopers
}

saytlar nomli enum turidagi o’zgaruvchi o’zida 3 ta nomlangan o’zgarmasni saqlamoqda.

Enum ichidagi o’zgarmaslarga murojaat etish uchun enum nomini yozib, ‘.’ nuqta qo’ygan holatda kerakli o’zgarmas nomini yozamiz. Bunda shu o’zgarmasni olamiz.

enum saytlar {
uzbekdevs,
uzbekcoders,
uzbekdeveloper
}

void main() {
var qiymat = saytlar.uzbekdevs;
print(qiymat);
}
>> saytlar.uzbekdevs

Enum turi orqali yaratilgan o’zgaruvchi ichidagi o’zgarmaslarni .values xususiyati orqali ro’yxat shaklida olib foydalana ham olamiz:

enum meva {
olma,
anor,
nok
}

void main() {
var lst = meva.values;
for (var item in lst) {
print(item);
}
}
>> meva.olma >> meva.anor >> meva,nok

O’zgarmasning qiymati va nomini olish:

  • index xususiyati tanlangan o’zgarmasning qiymatini olishga yordam beradi
  • name xususiyati tanlangan o’zgarmas nomini olib beradi
enum saytlar {
uzbekdevs,
uzbekcoders,
uzbekdeveloper
}

void main() {
var qiymat = saytlar.uzbekdevs;
print(qiymat.index);
print(qiymat.name);
}
>> 0 >> uzbekdevs

Hozirda saytlar nomli enum turidagi o’zgaruvchida 3 ta o’zgarmas mavjud bo’lib, ularga hech qanday qiymat belgilanmaganda 0 dan boshlab, ketma-ket raqamlab ketiladi. Mos ravishda uzbekdevs = 0, uzbekcoders = 1, uzbekdevelopers = 2 tarzida.

Bu o’zgarmaslar uchun boshlang’ich kerakli qiymatlarni o’zimiz ham berib keta olamiz.

enum saytlar {
uzbekdevs,
uzbekcoders,
uzbekdeveloper
}

void main() {
var qiymat = saytlar.uzbekdevs;
print(qiymat.index);
print(qiymat.name);
}
>> 0 >> uzbekdevs