Sobes.tech
Senior

Πού θα βρίσκονται ο πίνακας και ο χάρτης — στον σωρό ή στη στοίβα;

sobes.tech AI

Απάντηση από AI

En Go, los arreglos generalmente se colocan en la pila si su tamaño se conoce en tiempo de compilación y no son demasiado grandes. Esto se debe a que los arreglos son valores de tamaño fijo. Sin embargo, si un arreglo se pasa como puntero o se usa en una estructura que se asigna en el montón, entonces el arreglo también estará en el montón.

Map en Go es un tipo de referencia, implementado internamente mediante un puntero a una estructura de datos en el montón. Por lo tanto, un map siempre se coloca en el montón, incluso si la variable map se declara localmente.

Ejemplo:

func ejemplo() {
    var arr [10]int       // arreglo en la pila
    m := make(map[int]int) // map en el montón
    _ = arr
    _ = m
}