Junior
Qaytish chaqiruv funksiyalari nima?
sobes.tech AI
AIdan javob
Boshqa funktsiyaga argument sifatida uzatiladigan funktsiya. Chaqiruvchi funktsiya belgilangan vaqtda yoki ma'lum voqea yuz berganda uzatilgan funktsiyani bajarishi mumkin.
Qo'llanilishi:
- Voqealarni boshqarish (GUI, tizim voqealari)
- Asinxron operatsiyalar
- Xulq-atvor strategiyalari
- Umumiy algoritmlar
Misol:
C:
#include <stdio.h>
// int qabul qiladigan va void qaytaradigan funktsiya ko'rsatkichi turi
typedef void (*CallbackFunc)(int);
void do_something_with_callback(int value, CallbackFunc callback) {
printf("Qiymat bilan biror narsa qilmoq: %d\n", value);
if (callback != NULL) {
callback(value); // Qaytish funksiyasini chaqirish
}
}
void my_callback_function(int data) {
printf("Qaytish funksiyasi bajarildi, qiymat: %d\n", data);
}
int main() {
do_something_with_callback(10, my_callback_function);
do_something_with_callback(20, NULL); // Qaytish funksiyasiz
return 0;
}
C++:
#include <iostream>
#include <functional> // std::function uchun
void do_something_with_callback(int value, std::function<void(int)> callback) {
std::cout << "Qiymat bilan biror narsa qilmoq: " << value << std::endl;
if (callback) { // Qaytish funksiyasining mavjudligini tekshirish
callback(value); // Qaytish funksiyasini chaqirish
}
}
void my_callback_function(int data) {
std::cout << "Qaytish funksiyasi bajarildi, qiymat: " << data << std::endl;
}
int main() {
do_something_with_callback(10, my_callback_function);
// Lambda funksiyasi qaytish uchun
do_something_with_callback(20, [](int data) {
std::cout << "Lambda qaytish, qiymat: " << data << std::endl;
});
do_something_with_callback(30, nullptr); // Qaytish funksiyasi yo'q
return 0;
}