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 ва барномасозии функсионалӣ муфид аст.