Funktsiyadan natijani qaytarish
Funktsiya ma'lum bir qiymatni qaytarishi mumkin. Buning uchun qaytish bayonoti ishlatiladi. Masalan, funktsiyadan ikkita sonning yig'indisini qaytaramiz:
1
2
3
|
int sum(int a, int b){
return a + b;
}
|
Qaytish turi funksiya nomidan oldin joylashtiriladi. Ya'ni, bu holda funksiya int qiymatini qaytaradi. Funksiya tanasidagi return operatoridan keyin qaysi qiymat qaytarilishi ko'rsatiladi. Bu holda (a + b) ifodaning natijasidir. Bundan tashqari, qaytish bayonotidan keyingi qiymat turi funksiya turiga mos kelishi kerak. Bu holda funksiya int tipida bo'lib, a + b yig'indisini qaytaradi, u ham int turini ifodalaydi.
Bundan tashqari, return operatori funksiyaning bajarilishini tugatadi, shuning uchun funktsiyadagi barcha boshqa operatorlar return operatoridan oldin borishi kerak.
Biz funktsiya natijasini o'zgaruvchiga belgilashimiz va undan dasturda foydalanishimiz mumkin:
1
2
3
4
5
6
7
8
|
void main() {
int c = sum(2, 5);
print(c); // 7
}
int sum(int a, int b){
return a + b;
}
|
Bu erda yig'indisi funktsiyasining natijasi, ya'ni ikki sonning yig'indisi c o'zgaruvchiga beriladi.
Funktsiyani belgilashda biz qaytish turini ko'rsatishimiz shart emas. Keyin u return bayonotidan keyingi qiymat asosida chiqariladi:
1
2
3
4
5
6
7
8
9
10
|
void main() {
var n = sum(2, 5);
print(n);
}
// функция имеет тип int
sum(int a, int b){
return a + b;
}
|
Agar funktsiyada return operatori bo'lmasa, return null; operatori funktsiyaning tanasiga bevosita qo'shiladi. Masalan, funktsiya
1
2
3
|
sum(int a, int b){
print(a + b);
}
|
Haqiqatan ham ekvivalent bo'ladi
1
2
3
4
|
sum(int a, int b){
print(a + b);
return null;
}
|
Agar funktsiya hech qanday qiymatni qaytarmasligi kerak bo'lsa, u holda funktsiya void turiga kiradi. Bundan tashqari, biz hatto void tipidagi o'zgaruvchini aniqlashimiz va unga void funktsiyasining natijasini belgilashimiz mumkin, lekin biz void ob'ekti bilan hech narsa qila olmaymiz:
1
2
3
4
5
6
7
8
9
10
11
12
|
void main() {
void n = hello();
// поскольку переменная n представляет тип void,
// ничего мы с ней не сможем сделать, даже вывести на консоль
// print(n);
}
void hello(){
print("Hello!");
return null;
}
|
|