Junior — Middle
განმარტეთ ფუნქციებზე მიმანიშნებლების მუშაობა მაგალითით, სადაც ფუნქცია შეიცავს თავის შიგნით სხვა ფუნქციას.
sobes.tech AI
პასუხი AI-სგან
iOS (Swift ან თუ Objective-C) კონცეფცია ფუნქციის მაჩვენებლების განხორციელება ხდება closures ან blocks-ის საშუალებით. Objective-C-ზე დაფუძნებულ 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
ამ გზით, ფუნქციის მაჩვენებლები საშუალებას იძლევა დინამიურად ირჩევთ და გამოძახებთ ფუნქციებს, რაც სასარგებლოა callback-ებისთვის და ფუნქციონალურ პროგრამირებაში.