Формулы
Язык формул Creatium спроектирован таким образом, чтобы его можно было быстро освоить и начать использовать за максимально короткий период времени, при этом он дает большие возможности для работы с данными, которые никак иначе не доступны.
В этой статье мы разберем основы формул.
Готовые примеры формулТипы данных
Числа (number)
Целые числа: 123, -34, 0 и т.д.
Дробные числа: 10.22, 0.01 и т.д.
Поддерживается математическая запись для очень больших и очень маленьких чисел:
1.602176565e-19, 6.02214129e+23 и т.д.
Особые значения чисел: Infinity (бесконечность) и NaN (”Not a Number”, может возникать в тригонометрических функциях).
Строки (string)
Заключаются в одинарные (') или в двойные кавычки ("). Разного рода типографские кавычки (вроде ‘, ’, ‟, ”, и т.д.) не принимаются.
Примеры: "Hello!", "123", 'Test' и т.д.
Если внутри строки встречается такая же кавычка, как та, что используется для формирования строки, перед ней нужно поставить знак \.
Пример: "Это просто \"чудо\" какое-то". Или заключить строку в кавычки другого типа, чтобы не было конфликта кавычек одного типа: 'Это просто "чудо" какое-то'.
Истина или ложь (boolean)
Или true или false, всего 2 возможных значения. Обычно true означает нечто положительное, а false — нечто отрицательное. Да/нет, включено/выключено, в наличии/отсутвует и так далее.
Массивы (array)
Массив или список — это набор значений, разделенных запятыми, заключенный в квадратные скобки: [1, 2, 3], ["a", "b", "c"] и т.д.
Массив может содержать значения разных типов: [1, "b", false], включая вложенные массивы: [1, [12, 13], ["a", "b"]].
Объекты (object)
Объект — это набор пар ключ-значение, разделенных запятыми, заключенный в фигурные скобки. Значение может быть любого типа, а ключем может быть только строка. Между ключем и значением всегда ставится двоеточие: {"x": 12, "y": 44}, {"type": "house", "price": 1200} и т.д.
Если в названии ключа используются только латинские буквы, цифры (но не в самом начале) и символ _, то ключ можно не заключать в скобки: {name: "Hohn", age: 34}.
Как и массивы, объекты могут содержать другие вложенные объекты. Ключи в объекте не должны повторяться, но если такое случается, то “верным” значением считается последнее. То есть в объекте {x: 1, x: 2} значением ключа x будет 2.
Даты (date)
Даты записываются между двумя знаками #, в формате “год-месяц-день”: #2022-04-22#, #1994-05-04# и т.д. Ведущий ноль обязателен, то есть #1994-5-4# это уже неправильный формат.
Дата может включать так же и время:
#2022-04-22 14:05#
#2022-04-22 14:05:15# (с секундами)
#2022-04-22 14:05:15.245# (с миллисекундами)
Если не указано иное, то по умолчанию используется время по Гринвичу. Можно дополнительно указать и часовой пояс:
#2022-04-22 14:30 +05# (Нью-Йорк)
#2022-04-22 14:30 -03# (Москва)
Можно указать часовой пояс, опустив время:
#2022-04-22 -03# (00:00 по Москве)
Тип null (null)
Означает отсутствующее значение. Единственным возможным значением этого типа данных является null.
Переменные
Переменные обеспечивают доступ к значениям, которые могут меняться. Переменная может содержать значение любого типа — число, объект, массив, дату и т.д.
Название переменной может содержать латинские буквы, цифры и знак “_”, но не может начинаться с цифры. Несколько примеров названий переменных: member_id, url, test123.
Есть возможность объявлять переменные для использования внутри формулы.
В значениях переменных так же можно использовать формулы. Общий синтаксис такой:
название_переменной = формула;
название_переменной2 = формула;
...
формулаДоступ к элементам массива
Если в переменной хранится массив, доступ к элементам осуществляется следующим образом: array[0], где 0 это номер элемента.
Обратите внимание, что нумерация начинается с 0! Первый элемент, это элемент под номером 0, второй элемент под номером 1 и так далее.
Допустим, у нас есть переменная prices, содержащая массив [25, 33, 11]. Получить второе значение массива можно следующим образом: prices[1].
Так же есть удобный способ получения последнего элемента: prices[-1], то есть при использовании отрицательного номера, элементы считаются с конца.
Доступ к значениям объекта
Похожим образом осуществляется и доступ к значениям объекта, только вместо номера в квадратных скобках мы передаем строку: object["a"], где "a" это ключ.
Допустим, у нас есть переменная man, которая содержит объект { "firts name": "John", "age": 34 }. Получить значение “first name” этого объекта можно следующим образом: man["first name"].
А так получаем значение “age”: man["age"]. Если ключ содержит только латинские буквы, цифры и символ “_”, то синтаксис можно упростить: man.age.
Комментарии
В код формулы можно вставлять комментарии двумя способами.
Первый — конструкция /* комментарий */, которая может быть многострочной, а может занимать только часть строки.
Пример:
myDate + /* сутки */ 86400000Часть кода /* сутки */ будет проигнорирована при выполнении формулы.
Второй — конструкция // комментарий, которая превращает в комментарий всю оставшуюся часть строки, и которую удобно использовать при перечислении элементов массива или значений объектов.
Пример:
sum([
10,
20,
// 30,
40,
])В данном случае мы “закомментировали” третий элемент массива, и он не будет учитываться при сложении.
Операторы
Оператор — это простейшая конструкция языка.
Функции
Есть 2 способа вызвать функцию для работы со значением.
Первый — передать значение в качестве первого аргумента функции:
locate('Hello, world!', 'Hello')Второй — выполнить функцию над значением через точку:
'Hello, world!'.locate('Hello')Оба способа эквивалентны.
Математические функции
Тригонометрия: acos, acosh, asin, asinh, atan2, atan, atanh, cos, cosh, sin, sinh, tan, tanh
Работа с текстом
Массивы (списки)
Объекты
Дата и время
См. также toDate
Логические функции
Типы данных
Остались вопросы? — Напишите нам в чат поддержки будучи авторизованным в своем аккаунте cremax.ru или через чат поддержки в Телеграме: @CreatiumMaxSupportBot