Junior — Middle
Ichki funksiyani o'z ichiga olgan funksiyadan misol qilib, funksiyalarga ko'rsatkichlar bilan ishlashni tushuntiring.
sobes.tech AI
AIdan javob
iOS (Swift yoki Objective-C) da funksiyalar uchun pointerlar konseptsiyasi yopilishlar (closures) yoki bloklar (blocks) orqali amalga oshiriladi. Objective-C asoslangan C tilida, funksiyalar uchun pointerlar funksiyalarni parametr sifatida o'tkazishga yoki ularni saqlashga imkon beradi.
C tilida, ichki funksiyani o'z ichiga olgan (ichki funksiya yoki pointer qaytaradigan funksiya orqali) misol:
#include <stdio.h>
// C da ichki funksiyalar mavjud emas, lekin funksiyaga pointer qaytarish mumkin
int innerFunction(int x) {
return x * x;
}
int (*outerFunction())(int) {
// innerFunction ga pointer qaytaradi
return &innerFunction;
}
int main() {
int (*funcPtr)(int) = outerFunction();
int result = funcPtr(5); // pointer orqali innerFunction chaqirish
printf("Natija: %d\n", result); // Natija: 25
return 0;
}
Swiftda, yopilishlar (closures) ishlatilishi mumkin:
func outerFunction() -> (Int) -> Int {
func innerFunction(x: Int) -> Int {
return x * x
}
return innerFunction
}
let funcPtr = outerFunction()
print(funcPtr(5)) // 25
Shu tarzda, funksiyalar uchun pointerlar dinamik ravishda funksiyalarni tanlash va chaqirish imkonini beradi, bu esa callbacklar va funksional dasturlash uchun foydalidir.