Перейти к основному содержимому
Версия: 2.0 (WIP)

Работа с данными: функции и выражения

Строковые выражения

Путь к строке возвращает строковое значение. Строковый литерал заключается в одинарные или двойные кавычки; начальная и конечная кавычки должны совпадать. Одинарную кавычку можно писать внутри строки в двойных кавычках и наоборот. Экранирование соответствует строкам JSON.

Оператор конкатенации & объединяет строки, вычисленные слева и справа. Это единственный оператор, который приводит свои операнды к ожидаемому строковому типу.

FirstName & ' ' & Surname
Address.(Street & ', ' & City)
5&0&true

Результаты: соответственно "Fred Smith", "Hursley Park, Winchester" и "50true".

Числовые выражения

Путь к числу возвращает число; числовые литералы записываются как числа JSON. Поддерживаются + (сложение), - (вычитание), * (умножение), / (деление) и % (остаток).

Для { "Numbers": [1, 2.4, 3.5, 10, 20.9, 30] }:

ВыражениеРезультатНазначение
Numbers[0] + Numbers[1]3.4сложение
Numbers[0] - Numbers[4]-19.9вычитание
Numbers[0] * Numbers[5]30умножение
Numbers[0] / Numbers[4]0.04784688995215деление
Numbers[2] % Numbers[5]3.5остаток

Сравнения

Сравнение обычно используют в предикатах; оно возвращает true либо false. Операторы: = (равно), != (не равно), <, <=, >, >= и in (значение содержится в массиве).

ВыражениеРезультат
Numbers[0] = Numbers[5]false
Numbers[0] != Numbers[4]true
Numbers[1] < Numbers[5]true
Numbers[1] <= Numbers[5]true
Numbers[2] > Numbers[4]false
Numbers[2] >= Numbers[4]false
"01962 001234" in Phone.numbertrue

Логические выражения

Для объединения логических результатов предназначены and и or; not реализован как функция, а не оператор.

ВыражениеРезультат
(Numbers[2] != 0) and (Numbers[5] != Numbers[1])true
(Numbers[2] != 0) or (Numbers[5] = Numbers[1])true