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