Darsliklar Dart Takrorlanuvchilar (Iterables)

Dart Dart Takrorlanuvchilar (Iterables)

Takrorlanuvchilar (Iterables) — elementlarni ketma-ket aylanib chiqish mumkin bo’lgan to’plamlar uchun umumiy tushuncha. List va Set — bularning bari Iterable. Bu umumiy asos tufayli ular bir xil kuchli metodlar (map, where, reduce) bilan ishlaydi. Iterable’ni tushunish Dart’da to’plamlar bilan ustalik bilan ishlashning kalitidir.

Iterableelementlarni ketma-ket qaytara oladigan to’plamlar uchun umumiy interfeys. List va Set uning turlaridir.

Iterable metodlari

Har qanday Iterable boy metodlarga ega. Ularni jadvalda ko’ramiz:

Metod Vazifasi
map() har elementni o’zgartiradi
where() shart bo’yicha filtrlaydi
reduce() bitta qiymatga jamlaydi
forEach() har elementga amal qo’llaydi
any() kamida bittasi shartga mos
every() hammasi shartga mos

map va where

map har elementni o’zgartiradi, where esa shart bo’yicha filtrlaydi:

void main() {
  var sonlar = [1, 2, 3, 4, 5];
  var juftlar = sonlar.where((n) => n % 2 == 0);
  var kvadratlar = sonlar.map((n) => n * n);
  print(juftlar.toList());
  print(kvadratlar.toList());
}
[2, 4]
[1, 4, 9, 16, 25]

where juft sonlarni ajratdi, map har birini kvadratga ko’tardi. .toList() natijani ro’yxatga aylantiradi. Bu metodlar zanjirlab ham ishlatilishi mumkin.

reduce — jamlash

reduce barcha elementlarni bitta qiymatga jamlaydi. Masalan, yig’indi:

void main() {
  var sonlar = [10, 20, 30, 40];
  var yigindi = sonlar.reduce((a, b) => a + b);
  print("Yig'indi: $yigindi");
}
Yig'indi: 100

reduce elementlarni birma-bir qo’shib, yakuniy natijani berdi. (a, b) => a + b — har qadamda ikki qiymatni qanday birlashtirishni bildiradi.

any va every

any kamida bitta element shartga mos kelsa true, every esa hammasi mos kelsa true qaytaradi:

void main() {
  var yoshlar = [26, 30, 22, 28];
  print(yoshlar.any((y) => y > 29));    // kamida bittasi 29 dan katta?
  print(yoshlar.every((y) => y >= 18)); // hammasi voyaga yetganmi?
}
true
true

any — 30 borligi uchun true; every — hammasi 18 dan katta bo’lgani uchun true. Bu tekshiruvlar ma’lumotni tahlil qilishda juda foydali.

Xulosa

Bu bo’limda Iterable tushunchasini va uning kuchli metodlarini — map, where, reduce, any, every — ko’rib chiqdik. Bu metodlar List va Set bilan bir xil ishlaydi. Ular Dart’ning funksional kuchining asosidir. Keyingi darsda turlarni o’zgartirish (konvertatsiya) ga o’tamiz.