Darsliklar Dart Arrow, Anonim va ichma-ich funksiyalar

Dart Dart Arrow, Anonim va ichma-ich funksiyalar

Arrow, anonim va ichma-ich funksiyalar — Dart funksiyalarining kuchli va ixcham shakllari. Dart’da funksiyalar birinchi darajali obyekt bo’lgani uchun, ularni qisqartirish, nomsiz yaratish va funksiya ichida joylashtirish mumkin. Bu Flutter kodida juda ko’p uchraydi.

Arrow funksiya — bir ifodadan iborat funksiyaning qisqa shakli (=>). Anonim funksiya — nomsiz funksiya. Ichma-ich funksiya — funksiya ichidagi funksiya.

Arrow funksiya

Agar funksiya faqat bitta ifodadan iborat bo’lsa, uni => bilan qisqartirish mumkin:

int yigindi(int a, int b) => a + b;

void main() {
  print(yigindi(15, 27));
}
42

int yigindi(int a, int b) => a + b — jingalak qavs va returnsiz, bir qatorda. => “return” ni almashtiradi. Bu qisqa funksiyalarni yozishning nafis usuli.

Anonim funksiya

Anonim funksiya — nomsiz funksiya. U ko’pincha boshqa funksiyaga argument sifatida uzatiladi:

void main() {
  var sonlar = [1, 2, 3];
  sonlar.forEach((son) {
    print(son * 10);
  });
}
10
20
30

(son) { print(son * 10); } — nomsiz funksiya, forEach ga uzatildi. Har bir element uchun u chaqirildi. Anonim funksiyalar to’plamlar bilan ishlashda doimo uchraydi.

Anonim + arrow birga

Anonim funksiyani ham arrow bilan qisqartirish mumkin:

void main() {
  var sonlar = [1, 2, 3];
  var ikkilangan = sonlar.map((son) => son * 2).toList();
  print(ikkilangan);
}
[2, 4, 6]

(son) => son * 2 — anonim arrow funksiya, har elementni ikkiga ko’paytirdi. map esa yangi ro’yxat yaratdi. Bu Dart’ning funksional uslubidagi eng ko’p ishlatiladigan naqsh.

Ichma-ich funksiya

Dart funksiya ichida boshqa funksiya e’lon qilishga ruxsat beradi:

void main() {
  int kvadrat(int x) {
    return x * x;
  }

  print(kvadrat(5));
  print(kvadrat(8));
}
25
64

kvadrat — main ichida e’lon qilingan ichma-ich funksiya. U faqat main ichida ko’rinadi. Bu yordamchi funksiyalarni faqat kerakli joyda saqlashda foydali.

Funksiya turlarini solishtirish

Uch shaklni jadvalda ko’ramiz:

Tur Xususiyati Misol
Arrow bir ifoda, qisqa (x) => x * 2
Anonim nomsiz, uzatiladi forEach((x) {...})
Ichma-ich funksiya ichida mahalliy yordamchi

Xulosa

Bu bo’limda arrow funksiya (=>), anonim funksiya, ularning birga ishlatilishini va ichma-ich funksiyalarni ko’rib chiqdik. Bu shakllar Dart kodini ixcham va funksional qiladi. Keyingi darsda istisnolar bilan ishlashga o’tamiz.