Страницы

Поиск по вопросам

вторник, 16 октября 2018 г.

Почему имена встроенных функций в Go набраны строчными буквами?

Функции и переменные с именами начинающимися со сточной буквы не видны снаружи пакета, так почему встроенные типы и функции начинаются со строчной буквы? Они описаны в пакете main?


Ответ

Имена встроенных функций не входят ни в один пакет, и в Go нет перегрузки функций, по этому если существует встроенная функция foo, то ни в одном пакете нельзя объявить функцию с именем foo
Если бы встроенные функции начинались с большой буквы, например Append или Close, то нельзя было бы сделать метод с таким именем, что весьма неудобно.
Более того, если в будущем появится новая встроенная функция, например Move, то надо будет переписывать все пакеты, имеющие такую функцию. Более того, т.к. это публичное API, надо будет переписать все пакеты, в которых эта функция вызывается.
По этому встроенные функции начинаются с маленькой буквы. Это не мешает использованию этих функций в публичном API, и при добавлении новых встроенных функций будет сломано меньше кода.

Комментариев нет:

Отправить комментарий