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 funksiyabir 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

kvadratmain 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.