Middle
Go'da kapanış nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Go'da kapanış, çevresindeki alanın değerlerini "hatırlayan" ve dış fonksiyon sona erdikten sonra bile bu değerleri saklayan bir fonksiyondur. Bu, dış değişkenleri yakalamaya ve bunları içinde kullanmaya olanak tanır.
// Çevresel fonksiyon
func makeCounter() func() int {
count := 0 // Yakalanacak değişken
// İç fonksiyon (kapanış)
return func() int {
count++ // count'u yakala ve değiştir
return count
}
}
// Kullanım örneği
func main() {
counter1 := makeCounter() // İlk kapanışı oluştur
fmt.Println(counter1()) // Çıktı: 1
fmt.Println(counter1()) // Çıktı: 2
counter2 := makeCounter() // İkinci kapanışı oluştur (kendi count'u ile)
fmt.Println(counter2()) // Çıktı: 1
}