Junior — Middle
Magyarázza el a függvénymutatók működését egy olyan függvény példáján keresztül, amely egy másik függvényt tartalmaz.
sobes.tech MI
Válasz az MI-től
Az iOS-ben (Swift vagy Objective-C) a függvénymutatók fogalma zárványokon (closures) vagy blokkokon (blocks) keresztül valósul meg. Az Objective-C-re alapuló C nyelvben a függvénymutatók lehetővé teszik, hogy függvényeket paraméterként adjunk át vagy tároljunk későbbi hívásra.
C-ben, ahol egy belső függvényt tartalmazó függvény (egy beágyazott függvény vagy egy mutatót visszaadó függvény) példája:
#include <stdio.h>
// C-ben nincsenek beágyazott függvények, de vissza lehet adni egy függvénymutatót
int innerFunction(int x) {
return x * x;
}
int (*outerFunction())(int) {
// Visszaad egy mutatót az innerFunction-re
return &innerFunction;
}
int main() {
int (*funcPtr)(int) = outerFunction();
int result = funcPtr(5); // innerFunction hívása mutatóval
printf("Eredmény: %d\n", result); // Eredmény: 25
return 0;
}
Swift-ben closures használhatók:
func outerFunction() -> (Int) -> Int {
func innerFunction(x: Int) -> Int {
return x * x
}
return innerFunction
}
let funcPtr = outerFunction()
print(funcPtr(5)) // 25
Így a függvénymutatók lehetővé teszik a függvények dinamikus kiválasztását és hívását, ami hasznos callback-eknél és funkcionális programozásnál.