Junior — Middle
Ako sa riadi sled volaní funkcií počas behu programu?
sobes.tech AI
Odpoveď od AI
V jazyku Go sa správa sekvencie volaní funkcií pomocou zásobníka volaní. Keď je funkcia volaná, je umiestnená na zásobník a vykonávanie prechádza na ňu. Po dokončení funkcia vracia kontrolu volajúcej funkcii, ktorá sa nachádza nižšie na zásobníku. Rovnako je možné riadiť poradie volaní pomocou gorútin a kanálov pre paralelné a asynchrónne vykonávanie.
Príklad sekvenčného volania funkcií:
package main
import "fmt"
func first() {
fmt.Println("Prvá funkcia")
}
func second() {
fmt.Println("Druhá funkcia")
}
func main() {
first()
second()
}
Pre asynchrónne vykonávanie sa používajú gorutiny:
go first()
go second()
A synchronizácia pomocou kanálov alebo sync.WaitGroup.