В пакете несколько файлов, и всем нужна одна неэкспортируемая функция. Куда её положить.
Файлы внутри пакета не важны
Область видимости в Go это пакет, а не файл. Все файлы с одним
package foo в одной директории видят функции друг друга, включая приватные. Значит объявляйте общую функцию в любом файле, остальные её увидят без импортов и дублей. Хелперы обычно кладут в файл по смыслу, например parse.go. Свалку utils.go заводить не стоит, держите функции рядом с их сущностью.Если функция нужна нескольким пакетам
Когда приватную логику переиспользуют два и более пакета модуля, используйте
internal:internal/hashing/hashing.go // общий код
api/api.go // импортирует internal/hashing
Пакет в директории
internal импортируют только пакеты из того же поддерева. Функция экспортируется внутри internal/hashing, но снаружи модуля пакет закрыт.📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека Go-разработчика
#GoToProduction