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.