Senior
Unde vor fi localizate array-ul și map-ul — pe heap sau pe stivă?
sobes.tech AI
Răspuns de la AI
În Go, array-urile sunt de obicei plasate pe stivă dacă dimensiunea lor este cunoscută în timpul compilării și nu sunt prea mari. Acest lucru se datorează faptului că array-urile sunt valori de dimensiune fixă. Cu toate acestea, dacă un array este transmis ca pointer sau utilizat într-o structură alocată pe heap, atunci și array-ul va fi pe heap.
Map în Go este un tip de referință, implementat intern printr-un pointer către o structură de date pe heap. Prin urmare, map-ul se află întotdeauna pe heap, chiar dacă variabila map este declarată local.
Exemplu:
func exemplu() {
var arr [10]int // array pe stack
m := make(map[int]int) // map pe heap
_ = arr
_ = m
}