В Go есть стеки горутин, куча и области статических данных процесса. Размещение локального значения зависит от escape analysis и оптимизаций, а не только от var или new.
Какая память существует в Go и что куда попадает? Куда попадают глобальные переменные и константы?
В Go есть стеки горутин, куча и области статических данных процесса. Размещение локального значения зависит от escape analysis и оптимизаций, а не только от var или new.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
В Go есть стеки горутин, куча и области статических данных процесса. Размещение локального значения зависит от escape analysis и оптимизаций, а не только от var или new.
Глобальная переменная имеет статическое хранение, но её ссылки могут вести на объекты кучи. Константа — значение времени компиляции и не обязана иметь отдельный адрес памяти. Точное расположение и устранение выделений — детали компилятора; исходный синтаксис не даёт полной картины.