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.