Работа с данными: функции и выражения
Строковые выражения
Путь к строке возвращает строковое значение. Строковый литерал заключается в одинарные или двойные кавычки; начальная и конечная кавычки должны совпадать. Одинарную кавычку можно писать внутри строки в двойных кавычках и наоборот. Экранирование соответствует строкам 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.number | true |
Логические выражения
Для объединения логических результатов предназначены and и or; not реализован как функция, а не оператор.
| Выражение | Результат |
|---|---|
(Numbers[2] != 0) and (Numbers[5] != Numbers[1]) | true |
(Numbers[2] != 0) or (Numbers[5] = Numbers[1]) | true |