Reja. Kross-platformali dasturlash tili haqida umumiy ma`lumot


Funktsiya parametrlari tomonidan



Download 0,98 Mb.
bet13/39
Sana07.03.2022
Hajmi0,98 Mb.
#485533
1   ...   9   10   11   12   13   14   15   16   ...   39
Bog'liq
j7WNgrIuzYyWbItD7qqrNdYOmEd13B0L

Funktsiya parametrlari tomonidan

Funktsiya parametrlarni qabul qilishi mumkin. Funktsiya nomidan keyin qavs ichida keltirilgan parametrlar quyidagi ta'rifga ega:




1

тип название_параметра

Masalan, ikkita raqamni qo'shadigan funktsiyani aniqlaymiz:




1
2
3
4
5
6
7
8

void main() {
sum(2, 5); // 7
}
void sum(int a, int b){
int c = a + b;
print(c);
}

Sum funksiyasi a va b nomli va int tipidagi ikkita parametrni oladi. Asosiy funksiyada biz sum funksiyasini chaqiramiz va unga ikkita argumentni uzatamiz. Argumentlar funksiya parametrlari uchun qiymatlardir. Argumentlar pozitsiya bo'yicha parametrlarga uzatiladi. Ya'ni, birinchi argument birinchi parametrga, ikkinchi argument ikkinchi parametrga o'tkaziladi va hokazo. Bunda a parametri uning qiymati sifatida 2 raqamini, b parametri esa 5 raqamini oladi.


O'tkazilgan argumentlar soni parametrlar soniga mos kelishi kerak. Bundan tashqari, argumentlar turlari va parametrlar turlari o'rtasida muvofiqlik bo'lishi kerak. Masalan, boshqa funktsiyani aniqlaymiz:




1
2
3
4
5
6
7
8
9

void main() {
showPerson("Tom", 35);
showPerson("Alice", 29);
}
void showPerson(String name, int age){
print("Name: $name");
print("Age: $age \n");
}

showPerson funksiyasi ikkita parametrni oladi. Birinchi parametr String turiga, ikkinchisi esa int tipiga ega. Shuning uchun funktsiyani chaqirishda avval String tipidagi qiymatni (ya'ni satr), so'ngra int tipidagi qiymatni (ya'ni butun son) o'tkazish kerak.


Funktsiyani belgilashda biz parametrlar turini ko'rsatishimiz shart emas. Keyin Dartning o'zi o'tgan qiymatlar asosida ularning turini aniqlaydi:




1
2
3
4
5
6
7
8
9

void main() {
showPerson("Tom", 35);
showPerson(29, "Alice");
}
void showPerson(name, age){
print("Name: $name");
print("Age: $age \n");
}

E'tibor bering, endi funktsiyani belgilashda parametr nomi va yoshi qaysi turni ifodalashi noma'lum. Shuning uchun, showPerson ga ikkinchi qo'ng'iroqda (29, "Alice") Dart name parametrini int parametri sifatida ko'rib chiqadi, chunki unga butun son uzatiladi. Va yosh parametri qator sifatida ko'rib chiqiladi.

Ixtiyoriy parametrlar
Biz bir qator parametrlarni ixtiyoriy qilishimiz mumkin, ya'ni ular uchun hech qanday qiymatni o'tkaza olmaymiz. Buning uchun parametr kvadrat qavs ichiga olinadi. Lekin bunda u parametrga hech qanday qiymat o'tkazilmasa ishlatiladigan standart qiymatni taqdim etishi kerak:


1
2
3
4
5
6
7
8
9

void main() {
showPerson("Tom", 35);
showPerson("Alice");
}
void showPerson(String name, [int age = 22]){
print("Name: $name");
print("Age: $age \n");
}

Bunday holda, yosh parametri ixtiyoriydir. Agar biz unga hech qanday qiymat bermasak, u sukut bo'yicha 22 ga o'tadi. Konsol chiqishi:

Name: Tom


Age: 35

Name: Alice


Age: 22

Biroq, agar ixtiyoriy parametr null bo'ladigan turni ifodalasa, ya'ni u null qiymatini qabul qilishi mumkin bo'lsa, siz uning uchun standart qiymatni o'tkazib yuborishingiz mumkin - bu holda standart qiymat null bo'ladi:




1
2
3
4
5
6
7
8
9
10
11

void main() {
showPerson("Tom", 35);
showPerson("Alice");
}
void showPerson(String name, [int? age]){
print("Name: $name");
if(age!=null){
print("Age: $age \n");
}
}

Konsol chiqishi:

Name: Tom
Age: 35

Name: Alice

Nomlangan parametrlar
Dart parametrlarni nom bilan o'tkazishni qo'llab-quvvatlaydi. Masalan:

1
2
3
4
5
6
7
8
9
10

void main() {
showPerson(name: "Tom", age: 35);
showPerson(age: 29, name: "Alice");
showPerson(name: "Kate");
}
void showPerson({String name = "undefined", int age=0}){
print("Name: $name");
print("Age: $age \n");
}

Funktsiyani belgilashda parametrlar ro'yxati jingalak qavslar ichiga olinadi va agar uning turi nullni qo'llab-quvvatlamasa, har bir parametr uchun standart qiymat belgilanadi.


Funktsiya chaqirilganda parametr nomi ko'rsatiladi va uning qiymati ikki nuqta bilan ajratiladi (nom: "Tom"), biz parametrlarni istalgan tartibda belgilashimiz mumkin. Misol uchun, ikkinchi qo'ng'iroq birinchi navbatda yosh parametri uchun, keyin esa nom parametri uchun qiymatni belgilaydi (showPerson (yosh: 29, ism: "Alice")). Bundan tashqari, biz parametrlarga umuman qiymat o'tkaza olmaymiz, keyin bunday parametr uchinchi qo'ng'iroqdagi yosh parametrida bo'lgani kabi standart qiymatga ega bo'ladi (showPerson (ism: "Kate")).


Konsol chiqishi:

Name: Tom
Age: 35

Name: Alice


Age:29

Name: Kate


Age: 0

Agar parametr null bo'ladigan turni ifodalasa, ya'ni null qiymatni qo'llab-quvvatlasa, biz standart qiymatni o'tkazib yuborishimiz mumkin, keyin standart qiymat null bo'ladi:




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

void main() {
showPerson(age: 35);
showPerson(age: 29, name: "Alice");
showPerson(name: "Kate");
}
void showPerson({String? name = "undefined", int? age}){
print("Name: $name");
if(age != null){
print("Age: $age \n");
}
}

Dasturning konsol chiqishi:

Name: undefined
Age: 35

Name: Alice


Age: 29

Name: Kate

Funksiyalardagi konstantalar
Parametrlar qiymatlarni funktsiyalarda aniqlangan mahalliy o'zgaruvchilarga o'tkazish imkonini beradi. Ammo siz qiymatlarni parametrlar orqali mahalliy yakuniy konstantalarga o'tkazishingiz mumkin, chunki ular ish vaqtida aniqlanadi. Ammo shu bilan birga, biz qiymatlarni doimiy konstantalarga o'tkaza olmaymiz, chunki ularning qiymatlari kompilyatsiya vaqtida ma'lum bo'lishi kerak. Shu munosabat bilan, funktsiyaga turli xil qo'ng'iroqlar uchun biz oxirgi konstantalarga turli qiymatlarni o'tkazishimiz mumkin:


1
2
3
4
5
6
7
8
9
10
11

void main() {
showPerson("Tom", 35);
showPerson("Alice", 22);
}
void showPerson(String userName, int userAge){
// const int initialAge = userAge; - так нельзя, константа должна определяться на этапе компиляции
final String name = userName;
final int age = userAge;
print("Name: $name Age: $age \n");
}

Dasturning konsol chiqishi:

Name: Tom Age: 35

Name: Alice Age: 22




Download 0,98 Mb.

Do'stlaringiz bilan baham:
1   ...   9   10   11   12   13   14   15   16   ...   39




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish