Senior
Gde će se nalaziti niz i mapa — na hrpi ili na steku?
sobes.tech АИ
Одговор од АИ
U Go, nizovi se obično smeštaju na stek ako je njihova veličina poznata u vreme kompajliranja i nisu preveliki. To je povezano s tim da su nizovi vrednosti fiksne veličine. Međutim, ako se niz prosleđuje kao pokazivač ili se koristi u strukturi koja se dodeljuje na hrpi, tada će i niz biti na hrpi.
Map u Go je referentni tip, interno implementiran putem pokazivača na strukturu podataka na hrpi. Zato je mapa uvek na hrpi, čak i ako je promenljiva mape lokalno deklarisana.
Primer:
func primer() {
var arr [10]int // niz na steku
m := make(map[int]int) // mapa na hrpi
_ = arr
_ = m
}