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тер жана функционалдык программалоо үчүн пайдалуу.