Escape analysis — анализ компилятора Go, который определяет, может ли значение безопасно оставаться на стеке или должно жить дольше, например в куче.
Что такое escape analysis в Go?
Escape analysis — анализ компилятора Go, который определяет, может ли значение безопасно оставаться на стеке или должно жить дольше, например в куче.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Escape analysis — анализ компилятора Go, который определяет, может ли значение безопасно оставаться на стеке или должно жить дольше, например в куче.
Если ссылка на локальный объект сохраняется за пределами допустимого времени жизни, объект может быть размещён в куче. Возврат указателя из функции в Go безопасен, но конкретное размещение зависит от оптимизаций и контекста использования. Само наличие указателя не означает обязательную аллокацию в куче. Решения компилятора можно изучать флагом -gcflags=-m при сборке.