Junior — Middle
Hogyan változik a verem használata a program futása közben?
sobes.tech MI
Válasz az MI-től
A program futtatása közben a verem a függvényhívásokról, helyi változókról és a végrehajtás irányításáról szóló információkat tárolja.
Amikor egy függvényt hívnak, egy keret (hívási kontextus) kerül a verembe, amely tartalmazza:
- A visszatérési címet (hova térjen vissza a függvény befejezése után)
- Helyi változókat
- A függvény paramétereit
A függvény befejezésekor a keret eltávolításra kerül a veremből.
A Go nyelvben a verem dinamikusan növekszik és csökken szükség szerint, ami hatékony memóriahasználatot tesz lehetővé. Például, rekurzív függvényhívás esetén a verem bővül, és a függvényekből való kilépéskor összehúzódik.
Példa:
func factorial(n int) int {
if n == 0 {
return 1
}
return n * factorial(n-1)
}
func main() {
result := factorial(5)
fmt.Println(result) // 120
}
Ebben minden factorial hívás új keretet ad a veremhez, amely a függvény visszatérésekor eltávolításra kerül.