Типы данных и конвертация типов

Язык выражений внутренне имеет дело со следующими типами (и возвращает значения этих типов):

Тип

Описание

Null

Null  обозначает "отсутствие значения". Это значение может быть записано в ячейку таблицы данных только если поле может быть NULL.

Object

Супертип всех типов. Если объявляется, что функция возвращает Object, она может возвращать значения любого типа в зависимости от входных параметров.

Number

Супертип всех числовых типов. Если объявляется, что функция обрабатывает Number, она может обрабатывать данные типа Integer, Long, Float или Double. Дополнительно, все прочие объекты будут преобразованы в числовые, насколько это возможно.

Integer

32-битное целое число со знаком.

Long

64-битное целое число со знаком.

Float

32-битное число с плавающей запятой.

Double

64-битное число с плавающей запятой.

String

Строка любой длины. Строки могут также содержать бинарные данные.

Boolean

TRUE или FALSE

Color

8-битное значение цвета (RGB).

Date

Временная метка, содержащая как дату, так и время. Может использоваться функциями обработки даты/времени.

Data Table

Таблица данных.

Все типы имеют аналоги среди типов полей таблицы данных.

Выражения, которые оцениваются как числовой тип Float или Double, следуют стандарту IEEE_754 для арифметических операций. Например, выражение 1/0 оценивается как бесконечность (Infinity), а 0/0 оценивается как не число (NaN).

Конвертация типов

Движок обработки языка выражений делает все возможное для необходимой конвертации типов данных и вычисления выражения с получением результата. Например, если числовой аргумент передан функции, которая обрабатывает строки, число автоматически конвертируется в свою строковую репрезентацию. Другой пример: если число с плавающей запятой добавляется к целому числу, результирующее значение тоже будет числом с плавающей запятой. Это помогает избежать ошибок округления.

Если правильная конвертация типа невозможна, вычисление выражения выдает сбой c сообщением об ошибке.

Явная конвертация типов осуществляется с использованием функций конвертации типов.