Sobes.tech
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
}