Junior — Middle
Programlamada closure ile fonksiyon arasındaki farkı açıklayın.
sobes.tech yapay zeka
AI'dan gelen yanıt
Bir fonksiyon, belirli bir görevi yerine getiren ve parametre alıp sonuç döndürebilen bir kod bloğudur.
Kapanış (closure), dış alan değişkenlerine erişimi yakalayan ve saklayan bir fonksiyondur, hatta bu dış fonksiyon tamamlandıktan sonra bile.
Swift'te örnek:
func makeIncrementer(amount: Int) -> () -> Int {
var total = 0
let incrementer: () -> Int = {
total += amount
return total
}
return incrementer
}
let incrementByTen = makeIncrementer(amount: 10)
print(incrementByTen()) // 10
print(incrementByTen()) // 20
Burada, incrementer bir kapanıştır ve total durumunu çağrılar arasında korur, oysa makeIncrementer tamamlandıktan sonra bile. Normal bir fonksiyon böyle bir davranışa sahip değildir.