9.2 Значения
- 9.2.1 Базовые значения
- 9.2.2 Кортежи
- 9.2.3 Записи
- 9.2.4 Массивы
- 9.2.5 Значения вариантов
- 9.2.6 Полиморфные варианты
- 9.2.7 Функции
- 9.2.8 Объекты
В этом разделе описываются типы значений, с которыми работают программы на языке OCaml.
9.2.1 Базовые значения
Целые числа
Целые значения представляют целые числа от −230 до 230−1, то есть от −1073741824 до 1073741823. Реализация может поддерживать более широкий диапазон целых значений: на 64-битных платформах текущая реализация поддерживает целые числа от −262 до 262−1.
Числа с плавающей точкой
Значения с плавающей точкой представляют числа в формате с плавающей точкой. Текущая реализация использует числа с двойной точностью, соответствующие стандарту IEEE 754, с 53 битами мантиссы и экспонентой от −1022 до 1023.
Символы
Значения символов представляются как 8-битовые целые числа от 0 до 255. Коды символов от 0 до 127 интерпретируются в соответствии со стандартом ASCII. Текущая реализация интерпретирует коды символов от 128 до 255 в соответствии со стандартом ISO 8859-1.
Строки символов
Строковые значения являются конечными последовательностями символов. Текущая реализация поддерживает строки, содержащие до 224 − 5 символов (16777211 символов); на 64-битных платформах ограничение составляет 257 − 9.
9.2.2 Кортежи
Кортежи значений записываются как (v1, …, vn), обозначая n-кортеж значений v1 до vn. Текущая реализация поддерживает кортежи, содержащие до 222 − 1 элементов (4194303 элементов).
9.2.3 Записи
Значения записей представляют собой помеченные кортежи значений. Значение записи, записанное как { поле1 = v1; …; полеn = vn }, связывает значение vi с полем записи полеi для i = 1 … n. Текущая реализация поддерживает записи с до 222 − 1 полей (4194303 полей).
9.2.4 Массивы
Массивы представляют собой конечные последовательности значений одного типа переменной длины. Текущая реализация поддерживает массивы, содержащие до 222 − 1 элементов (4194303 элементов), если элементы не являются числами с плавающей точкой (в этом случае 2097151 элемент); на 64-битных платформах ограничение составляет 254 − 1 для всех массивов.
9.2.5 Значения вариантов
Значения вариантов либо представляют собой константный конструктор, либо неконстантный конструктор, применённый к нескольким значениям. В первом случае запись имеет вид конструктор; во втором случае — конструктор (v1, ... , vn ), где vi являются аргументами неконстантного конструктора конструктор. Скобки можно опустить, если аргументов только один.
Следующие константы обрабатываются как встроенные константные конструкторы:
| Константа | Конструктор |
| false | логическое значение false |
| true | логическое значение true |
| () | значение «единица» |
| [] | пустой список |
В текущей реализации каждый тип варианта ограничен максимум 246 неконстантными конструкторами и 230−1 константными конструкторами.
9.2.6 Полиморфные варианты
Полиморфные варианты являются альтернативной формой значений вариантов, не относящихся явно к предопределенному типу варианта и подчиняющихся определенным правилам типизации. Они могут быть либо константными, записанными как `имя тега, либо неконстантными, записанными как `имя тега(v).
9.2.7 Функции
Функциональные значения являются отображениями значений в значения.
9.2.8 Объекты
Объекты состоят из скрытого внутреннего состояния, представляющего собой запись переменных экземпляра, и набора методов для доступа к этим переменным и их изменения. Структура объекта описывается верхним классом, который его создал.
© 1995-2022 INRIA.
https://v2.ocaml.org/releases/4.14/htmlman/values.html