Sobes.tech
Junior — Middle

Program çalışırken yığın kullanımı nasıl değişir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Program çalışırken, yığın fonksiyon çağrıları, yerel değişkenler ve yürütme akışını kontrol etmek için bilgi depolamak üzere kullanılır.

Bir fonksiyon çağrıldığında, çağrı bağlamını içeren bir çerçeve (kapsam) yığına konur:

  • Dönüş adresi (fonksiyon tamamlandıktan sonra nereye dönülecek)
  • Yerel değişkenler
  • Fonksiyon parametreleri

Fonksiyon tamamlandığında, onun çerçevesi yığından kaldırılır.

Go dilinde, yığın ihtiyaç duyulduğunda dinamik olarak büyür ve küçülür, bu da belleğin verimli kullanılmasını sağlar. Örneğin, özyinelemeli bir fonksiyon çağrıldığında, yığın genişler ve fonksiyondan çıkıldığında daralır.

Örnek:

func factorial(n int) int {
    if n == 0 {
        return 1
    }
    return n * factorial(n-1)
}

func main() {
    result := factorial(5)
    fmt.Println(result) // 120
}

Burada, her factorial çağrısı yığına yeni bir çerçeve ekler ve fonksiyondan dönüşte kaldırılır.