Что такое exported vs unexported?

Junior
713 просмотров
AFK Offer AI

В Go видимость определяется регистром первой буквы. Заглавная — exported (публичный), строчная — unexported (приватный). User — виден из других пакетов, user — только внутри пакета. Работает для типов, функций, методов, полей структур, констант. Это единственный механизм инкапсуляции в Go — нет private/protected/public keywords. Unexported поля не сериализуются в JSON (encoding/json их игнорирует). Struct tags (json:"name") работают только с exported полями. Правило: экспортируй минимум необходимого, скрывай детали реализации.

Следующий вопрос

Как оптимизировать Docker image?