Middle
Yapışdırıcılar necə value type növündəki dəyərləri ələ keçirə bilər?
sobes.tech Süni İntellekt
AI-dan cavab
Bağlamalar, bağlamanın təyin olunduğu anda dəyər növünün bir nüsxəsini ələ keçirir. Əgər dəyər növü bağlamadan sonra dəyişərsə, bağlamanın içində onun orijinal nüsxəsi mövcud olacaq, dəyişdirilmiş dəyər yox.
var counter = 0
let incrementCounter = { // Bağlama `counter`-in bir nüsxəsini ələ keçirir (0)
counter += 1
print(counter)
}
incrementCounter() // 1 çap edir
counter = 10 // Orijinal `counter` dəyişdirilir
incrementCounter() // 2 çap edir. Bağlama ələ keçirilmiş nüsxə ilə işləyir, dəyişdirilmiş dəyişən ilə yox.
@escaping ilə dəyər tipi bağlamalarından istifadə edərkən, bu nüsxə ələ keçirmə mexanizmini nəzərə almaq vacibdir, çünki dəyər çağırışdan əvvəl dəyişə bilər.