Senior
Kde budú umiestnené pole a mapa — na halde alebo na zásobníku?
sobes.tech AI
Odpoveď od AI
V Go sú polia zvyčajne umiestnené na zásobníku, ak je ich veľkosť známa v čase kompilácie a nie sú príliš veľké. To je spôsobené tým, že polia sú hodnoty s pevnou veľkosťou. Avšak, ak je pole odovzdané ako ukazovateľ alebo je použité v štruktúre alokovanej na halde, potom bude aj toto pole na halde.
Map v Go je odkazový typ, interné implementovaný pomocou ukazovateľa na dátovú štruktúru na halde. Preto je mapa vždy umiestnená na halde, aj keď je premenná mapa deklarovaná lokálne.
Príklad:
func príklad() {
var arr [10]int // pole na zásobníku
m := make(map[int]int) // mapa na halde
_ = arr
_ = m
}