Junior — Middle
Vysvetlite, ako fungujú ukazovatele na funkcie na príklade funkcie, ktorá obsahuje vo vnútri inú funkciu.
sobes.tech AI
Odpoveď od AI
V iOS (Swift alebo Objective-C) je koncept ukazovateľov na funkcie implementovaný pomocou closures alebo blokov. V jazyku C, na ktorom je založený Objective-C, ukazovatele na funkcie umožňujú odovzdávať funkcie ako parametre alebo ich ukladať na neskoršie volanie.
Príklad v C s funkciou, ktorá obsahuje inú funkciu vo vnútri (cez vnorenú funkciu alebo funkciu, ktorá vracia ukazovateľ):
#include <stdio.h>
// V C nie sú vnorené funkcie, ale môžeme vrátiť ukazovateľ na funkciu
int innerFunction(int x) {
return x * x;
}
int (*outerFunction())(int) {
// Vráti ukazovateľ na innerFunction
return &innerFunction;
}
int main() {
int (*funcPtr)(int) = outerFunction();
int result = funcPtr(5); // volanie innerFunction cez ukazovateľ
printf("Výsledok: %d\n", result); // Výsledok: 25
return 0;
}
V Swift môžeme použiť closures:
func outerFunction() -> (Int) -> Int {
func innerFunction(x: Int) -> Int {
return x * x
}
return innerFunction
}
let funcPtr = outerFunction()
print(funcPtr(5)) // 25
Týmto spôsobom ukazovatele na funkcie umožňujú dynamicky vyberať a volať funkcie, čo je užitočné pre callbacky a funkcionálne programovanie.