Глава 11 Язык программирования OCaml
3 Имена
Идентификаторы используются для присвоения имён различным объектам языка и последующей ссылки на эти объекты по имени:
- имена значений (синтаксическая категория имя-значения),
- конструкторы значений и конструкторы исключений (категория имя-конструктора),
- метки (имя-метки, определены в разделе 11.1),
- метки полиморфных вариантов (имя-метки),
- конструкторы типов (имя-конструктора-типа),
- поля записей (имя-поля),
- имена классов (имя-класса),
- имена методов (имя-метода),
- имена переменных экземпляра (имя-переменной-экземпляра),
- имена модулей (имя-модуля),
- имена типов модулей (имя-типа-модуля).
Эти одиннадцать пространств имён различаются как по контексту, так и по регистру первой буквы идентификатора: строчные буквы (обозначено ниже как строчный-идентификатор) или заглавные (обозначено как заглавный-идентификатор). Подчеркивание считается строчной буквой для этой цели.
Именование объектов
|
См. также следующее расширение языка: расширенные операторы индексирования.
Как показано выше, префиксные и инфиксные символы, а также некоторые ключевые слова могут быть использованы в качестве имён значений, если они заключены в скобки. Правила регистров сведены в таблицу ниже.
| Пространство имён | Регистр первой буквы |
| Значения | строчная |
| Конструкторы | заглавная |
| Метки | строчная |
| Метки полиморфных вариантов | заглавная |
| Исключения | заглавная |
| Конструкторы типов | строчная |
| Поля записей | строчная |
| Классы | строчная |
| Переменные экземпляра | строчная |
| Методы | строчная |
| Модули | заглавная |
| Типы модулей | любой |
Примечание по меткам полиморфных вариантов: текущая реализация принимает строчные метки вариантов дополнительно к заглавным, но рекомендуется избегать строчных меток вариантов для обеспечения портативности и совместимости с будущими версиями OCaml.
Ссылка на именованные объекты
|
Именованный объект может быть указан либо по имени (следуя обычным правилам статического объявления имён), либо по пути доступа префикс . имя, где префикс обозначает модуль, а имя — имя объекта, определённого в этом модуле. Первый компонент пути, префикс, — это либо простое имя модуля, либо путь доступа имя1 . имя2 …, если определяющий модуль сам вложен в другие модули. При ссылках на конструкторы типов, типы модулей или типы классов префикс также может содержать простые применения функторов (как в синтаксическом классе extended-module-path выше), если определяющий модуль является результатом применения функтора.
Имена меток, тегов, имена методов и имена переменных экземпляров не нуждаются в квалификации: первые три являются глобальными метками, а последние — локальными для класса.
© 1995-2024 INRIA.
https://ocaml.org/manual/5.2/names.html