Sobes.tech
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
}