Middle
Kapanımlar nasıl value type türündeki değerleri yakalayabilir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Kapanışlar, kapanışın tanımlandığı anda value türündeki değerin bir kopyasını yakalar. Eğer value türündeki değer, kapanıştan sonra değişirse, kapanış içinde orijinal kopyası erişilebilir ve değiştirilmiş değer değil.
var counter = 0
let incrementCounter = { // Kapanış, `counter`'ın (0) bir kopyasını yakalar
counter += 1
print(counter)
}
incrementCounter() // 1 yazdırır
counter = 10 // Orijinal `counter` değişkenini değiştiriyoruz
incrementCounter() // 2 yazdırır. Kapanış, yakalanan kopya ile çalışır, değiştirilmiş değişken ile değil.
@escaping kullanırken, value türündeki kapanışlar ile bu kopyalama mekanizmasını dikkate almak önemlidir, çünkü değer kapanış çağrısından önce değişebilir.