Влияет ли регистр букв в имени функции на ее поведение и доступность?

Чувствительность идентификаторов к регистру, экспорт в Go и соглашения об именовании — разные правила, зависящие от языка.

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

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

Ответ зависит от языка. В чувствительных к регистру языках разные написания обозначают разные имена. В Go начальная заглавная буква также участвует в правиле экспорта: объявленная в блоке пакета функция с таким именем доступна другим пакетам. В PHP имена обычных функций регистронезависимы для ASCII-букв. Соглашения стиля нельзя путать с правилами языка.

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

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

Сначала уточните язык: универсального правила «заглавные буквы делают функцию особенной» нет. Нужно разделить чувствительность имен к регистру, правила видимости и стиль кода.

В Go имена parse и Parse различаются. Более того, функция, объявленная в блоке пакета и начинающаяся с заглавной буквы, экспортируется и может использоваться другим пакетом. Имя с начальной строчной буквой не экспортируется. Это семантическое правило, а не просто рекомендация оформления; см. спецификацию Go.

В PHP обычные имена функций регистронезависимы в отношении ASCII-букв, хотя документация рекомендует вызывать функцию в том же написании, в котором она объявлена. См. пользовательские функции PHP. Поэтому утверждение, что изменение регистра всегда вызывает ошибку, неверно.

В других языках необходимо проверить их собственные правила. Даже при чувствительности к регистру вызов с другим написанием не обязательно завершится ошибкой: под таким именем может существовать другая функция. Тогда будет вызвана она.

Соглашения вроде snake_case, camelCase или верхнего регистра для макросов помогают чтению, но сами по себе не создают общих для всех языков свойств. На интервью полезно привести небольшой пример в обсуждаемом языке и отдельно назвать, что проверяет компилятор или интерпретатор, а что проверяет только линтер.

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку