Junior — Middle
Bağlam daxilində dəyişən tutarkən, o harada saxlanılır — yığımda və ya yığımda?
sobes.tech Süni İntellekt
AI-dan cavab
iOS-da (məsələn, Swift və ya Objective-C-də) bağlamanın içində dəyişən tutulduqda, dəyişən adətən yığımda saxlanılır.
Bu, bağlamanın, dəyişənin yaradıldığı yığım çərçivəsindən daha uzun müddət yaşaya biləcəyi ilə əlaqədardır. Bu dəyişənə funksiyadan çıxıldıqdan sonra daxil olmaq üçün, tərtibçi onu yığımda ayırır və bağlama ona istinad edir.
Swift-də nümunə:
func makeIncrementer() -> () -> Int {
var count = 0
return {
count += 1
return count
}
}
let increment = makeIncrementer()
print(increment()) // 1
print(increment()) // 2
Burada, count bağlam tərəfindən tutulur və vəziyyətini saxlamaq üçün yığımda saxlanılır.
Beləliklə, bağlamalar tərəfindən tutulmuş dəyişənlər, onların həyat dövrünü təmin etmək üçün yığımda yerləşdirilir, bu da yığından kənara çıxır.