Sobes.tech
Junior — Middle

Programlamada dışına çıkmayan kapanış kavramını açıklayın.

sobes.tech yapay zeka

AI'dan gelen yanıt

Programlamada, kapanış (closure), dış alanın referanslarını yakalayan ve saklayan bir fonksiyondur, hatta bu alanın yürütmesi tamamlandıktan sonra bile. Dış alanın dışına çıkmayan kapanışlar kavramı, kapanışın bu değişkenlere erişmeye devam ettiği anlamına gelir, çünkü bunlar kapanış var olduğu sürece yok edilmezler.

Örneğin, Swift'te:

func makeIncrementer(amount: Int) -> () -> Int {
    var total = 0
    return {
        total += amount
        return total
    }
}

let incrementByFive = makeIncrementer(amount: 5)
print(incrementByFive()) // 5
print(incrementByFive()) // 10

Burada, kapanış total değişkenini saklar, bu değişken normalde makeIncrementer çalıştıktan sonra alan dışına çıkmalıydı. Ama kapanış sayesinde, total korunur ve her çağrıldığında değiştirilir.

Bu şekilde, kapanışlar durumu korumaya ve dış alan değişkenleriyle çalışmaya olanak tanır, alan dışına çıkmadan.