При каком условии go build не будет пересобирать пакет, а будет использовать кэш?

Go использует кэш, если в нём есть результат для тех же входных данных сборки: исходников, зависимостей, компилятора и значимых параметров.

Короткий ответ

Что ответить на собеседовании

Go использует кэш, если в нём есть результат для тех же входных данных сборки: исходников, зависимостей, компилятора и значимых параметров.

Подробный разбор

Ответ с пояснениями

Go использует кэш, если в нём есть результат для тех же входных данных сборки: исходников, зависимостей, компилятора и значимых параметров.

Кэширование определяется не только временем изменения файла. Смена исходников, версии toolchain или флагов может потребовать новую сборку соответствующих пакетов. Посмотреть каталог можно через go env GOCACHE, а флаг -a принудительно пересобирает пакеты. Отдельная оговорка касается cgo: изменения внешних C-библиотек автоматически обнаруживаются не всегда, поэтому после них может потребоваться очистка кэша или принудительная сборка.

Источник: pkg.go.dev.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее