Глава 2 · Переменные и значения
Типы данных
Что можно хранить в переменной и какие действия к этому применимы, решает тип. Числа, текст, логические и временные значения, файловые и графические ресурсы относятся к разным типам; составные данные представлены массивами, записями и функциональными значениями.
Как тип закрепляется за значением
Тип переменной указывается после AS или выводится из начального выражения при объявлении. Дальше он сохраняется при всех присваиваниях: переменная INTEGER хранит целые числа, STRING хранит текст, BOOLEAN принимает TRUE или FALSE. Формы объявления приведены в статье DIM.
Тип результата задаёт сама операция: сравнение даёт BOOLEAN, соединение строк — STRING. Для встроенных функций типы аргументов и возвращаемого значения указаны в соответствующих справочных статьях.
Обзор групп
Таблица перечисляет все группы данных и ведёт к странице, где описан соответствующий тип или форма.
| Данные | Тип или форма | Полное описание |
|---|---|---|
| Целые числа | INTEGER, LONG | Числовые данные |
| Дробные числа | DOUBLE, DECIMAL | Числовые данные |
| Истина или ложь | BOOLEAN | BOOLEAN, TRUE и FALSE |
| Текст | STRING | Обычные и фиксированные строки |
| Дата, время суток и их сочетание без часового пояса | DATE, TIME, DATETIME | Дата и время |
| Однозначный момент на шкале UTC | UTCDATETIME | UTC и часовые пояса |
| Открытый текстовый файл | FILE | Работа с файлами |
| Изображение | IMAGE | Изображения |
| Набор кадров | SPRITE | Спрайты |
| Набор тайлов | TILESET | Тайлсеты |
| Тайловая карта | TILEMAP | Тайловые карты |
| Элементы одного типа, доступные по индексам | Массив: INTEGER[], INTEGER[,] и другие типы элементов | Массивы |
| Запись с именованными полями | Пользовательский TYPE | Пользовательские типы |
| Функция, передаваемая как значение | FUNCTION (...) AS ... | Процедуры и функции |
Значение ошибки в CATCH
Конструкция CATCH err объявляет переменную типа ERROR с кодом, сообщением, строкой и столбцом ошибки. В своём обработчике переменная доступна только для чтения. Правила объявления, состав полей и примеры приведены в статье TRY.
Диапазон и совместимость
Диапазон числового типа и способ представления числа ограничивают допустимые значения и точность вычислений: INTEGER использует 32 разряда, DOUBLE допускает округление. Точные пределы приведены в таблице диапазонов.
Совместимость типов решает, можно ли записать значение в переменную или передать его параметру при вызове. Строка "12", присвоенная числовой переменной, не превращается в число автоматически: для разбора нужны функции преобразования. Допустимые переходы, точность и ограничения описаны в статье о преобразованиях типов.