В Go имя с заглавной буквы экспортируется из пакета, а с маленькой — остаётся внутри него. Поэтому Cache может быть частью API, а entry — деталью реализации.
Почему `entry` написан с маленькой буквы, а `Cache` — с большой?
В Go имя с заглавной буквы экспортируется из пакета, а с маленькой — остаётся внутри него. Поэтому Cache может быть частью API, а entry — деталью реализации.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
В Go имя с заглавной буквы экспортируется из пакета, а с маленькой — остаётся внутри него. Поэтому Cache может быть частью API, а entry — деталью реализации.
Это правило действует для идентификаторов, включая типы, функции и поля, с учётом области объявления. Сокрытие entry позволяет менять внутреннее представление кэша, не заставляя клиентов зависеть от него. Экспортировать следует только необходимый контракт; большая буква сама по себе не делает объект глобальной переменной.