Junior — Middle
Εξηγήστε πώς λειτουργούν οι δείκτες σε συναρτήσεις με το παράδειγμα μιας συνάρτησης που περιέχει μέσα της μια άλλη συνάρτηση.
sobes.tech AI
Απάντηση από AI
Στο iOS (Swift ή Objective-C), η έννοια των δεικτών σε συναρτήσεις υλοποιείται μέσω closures ή blocks. Στη γλώσσα C, στην οποία βασίζεται το Objective-C, οι δείκτες σε συναρτήσεις επιτρέπουν την παράδοση συναρτήσεων ως παραμέτρους ή την αποθήκευσή τους για μελλοντική κλήση.
Παράδειγμα σε C με μια συνάρτηση που περιέχει μια άλλη συνάρτηση (μέσω εσωτερικής συνάρτησης ή συνάρτησης που επιστρέφει δείκτη):
#include <stdio.h>
// Στη C, δεν υπάρχουν εσωτερικές συναρτήσεις, αλλά μπορούμε να επιστρέψουμε δείκτη σε συνάρτηση
int innerFunction(int x) {
return x * x;
}
int (*outerFunction())(int) {
// Επιστρέφει δείκτη στην innerFunction
return &innerFunction;
}
int main() {
int (*funcPtr)(int) = outerFunction();
int result = funcPtr(5); // κλήση της innerFunction μέσω δείκτη
printf("Αποτέλεσμα: %d\n", result); // Έξοδος: Αποτέλεσμα: 25
return 0;
}
Στο Swift, μπορείτε να χρησιμοποιήσετε closures:
func outerFunction() -> (Int) -> Int {
func innerFunction(x: Int) -> Int {
return x * x
}
return innerFunction
}
let funcPtr = outerFunction()
print(funcPtr(5)) // 25
Έτσι, οι δείκτες σε συναρτήσεις επιτρέπουν την δυναμική επιλογή και κλήση συναρτήσεων, κάτι που είναι χρήσιμο για callbacks και λειτουργικό προγραμματισμό.