Sobes.tech
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;
}