Junior — Middle
Programlamada kapanışların çalışma mekanizmasını açıklayın.
sobes.tech yapay zeka
AI'dan gelen yanıt
Programlamada, bir kapanış (closure), "hatırlayan" ve dış çevresel alanındaki değişkenleri kullanabilen bir fonksiyondur, hatta bu dış fonksiyon zaten tamamlanmış olsa bile.
Go dilinde, kapanışlar genellikle çevresel bağlamdan değişkenlere erişen anonim fonksiyonlar kullanılarak oluşturulur. Bu, fonksiyon çağrıları arasında durumu korumayı sağlar.
Örnek:
package main
import "fmt"
func sayac() func() int {
count := 0
return func() int {
count++
return count
}
}
func main() {
c := sayac()
fmt.Println(c()) // 1
fmt.Println(c()) // 2
fmt.Println(c()) // 3
}
Burada, sayac fonksiyonu, count değerini artıran ve döndüren bir kapanış döndürür. count değişkeni, çağrılar arasında kapanışta korunur.