Anonim va ichki o'rnatilgan funktsiyalar




Download 283,65 Kb.
bet15/35
Sana16.05.2024
Hajmi283,65 Kb.
#237313
1   ...   11   12   13   14   15   16   17   18   ...   35
Bog'liq
Dart tili bo\'yicha qo\'llanma 1-bob. Dart tiliga kirish Dart nima

Anonim va ichki o'rnatilgan funktsiyalar

Anonim funktsiyalar


Anonim funktsiyalar oddiy funktsiyalarga o'xshaydi, faqat ularning nomi yo'q. Masalan:


1
2
3
4
5

void main() {
Function operation = (a, b) => a + b;
print(operation(4, 5));
}

Bunda o'zgaruvchi amaliga anonim funksiyaga (a, b) => a + b havola beriladi, u ikkita parametrni oladi va ularning qiymatlari yig'indisini qaytaradi.


Bunday holda, anonim funksiya qisqartma yozuviga ega, ammo biz uni ham kengaytirishimiz mumkin:




1
2
3
4
5
6
7
8
9

void main() {
Function operation = (int a, int b)
{
print("Sum of $a and $b");
return a + b;
};
print(operation(4, 5));
}

Anonim funktsiyalardan qayerda foydalanish mantiqiy? Agar biz boshqa funktsiyani qabul qiladigan funktsiyani chaqiradigan bo'lsak, u holda parametr funktsiyasi nomini aniqlashdan ko'ra anonim funktsiyadan foydalanish osonroq bo'lishi mumkin, ayniqsa, boshqa biron bir joyda nomlangan funktsiya kerak bo'lmasa:




1
2
3
4
5
6
7
8
9
10
11

void main() {
int result = getResult(3, 5, (a,b)=>a+b);
print(result); // 8
result = getResult(3, 5, (a,b)=>a-b);
print(result); // -2
}
int getResult(int a, int b, Function operation){
return operation(a, b);
}

Ichki funksiyalar


Dartda funksiyalar boshqa funksiyalar ichiga joylashtirilishi mumkin:


1
2
3
4
5
6
7
8
9

void main() {
void hello(){
print("Hello!");
}
hello();
hello();
}

Bundan tashqari, o'rnatilgan funktsiyaning ta'rifi uni chaqirishdan oldin bo'lishi kerak. Agar biz takrorlanadigan amallarni faqat ma'lum bir funktsiya doirasida ishlatishni rejalashtirsak, ichki o'rnatilgan funktsiyalar mantiqiy bo'ladi.


Bundan tashqari, ichki o'rnatilgan funktsiyalarning o'zi boshqa ichki funktsiyalarni o'z ichiga olishi mumkin:




1
2
3
4
5
6
7
8
9
10
11
12
13

void main() {
void showMessage(){
void hello(){
print("Hello!");
}
hello();
hello();
}
showMessage();
}

Shuni ta'kidlash kerakki, ichki o'rnatilgan funktsiyalar o'zlarining kontekstlarini - tashqi funktsiyaga kira olmaydigan o'zgaruvchilar va konstantalarni tashkil qiladi. Masalan:




1
2
3
4
5
6
7
8
9

void main() {
void welcome(){
var message = "Welcome!";
print(message);
}
print(message); // ! Ошибка - внешняя функция не может обращаться к переменным вложенных функций.
}

Bunday holda, xabar o'zgaruvchisi xush kelibsiz funktsiyasi ichida aniqlanadi, shuning uchun uni faqat shu funktsiya ichida chaqirish mumkin, lekin undan tashqarida emas.




Download 283,65 Kb.
1   ...   11   12   13   14   15   16   17   18   ...   35




Download 283,65 Kb.

Bosh sahifa
Aloqalar

    Bosh sahifa



Anonim va ichki o'rnatilgan funktsiyalar

Download 283,65 Kb.