Общие сведения
Ninox — типизированный и предварительно компилируемый язык. Это значит, что типы обрабатываемых данных известны заранее, в отличие от других языков, например JavaScript, где переменные могут использоваться без знания их типа.
Одно из главных достоинств Ninox — то, что порождаемый им код особенно надёжен: сбои случаются крайне редко.
Отметим, что скрипт Ninox перед выполнением компилируется в JavaScript.
Вложенный и линейный код
Каждая функция или инструкция возвращает значение, которое можно сразу передать параметром в другую функцию или инструкцию:
var a := format(now(), "DD/MM/YYYY");
Таким образом, переменной можно присвоить целый набор вложенных вызовов:
var a := true;
var b := if a then "true" else "false";
Можно также присвоить b результат блока линейного кода, заключённого в скобки:
var b := (
var a := true;
if a then "true" else "false" end
);
Важно помнить, что в линейном коде тип и возвращаемое значение всегда определяет последняя строка. В этом примере b будет равно 10:
var b := (
var a := true;
if a then "true" else "false" end;
10
);
Методы
Методы — это функции, которые принимают один или несколько параметров и возвращают значение. И параметры, и возвращаемое значение предопределены.
У некоторых методов бывает несколько наборов параметров:
date(year, month, day)
Возвращает значение-дату.date(myTimeValue)
Преобразует заданное значение, связанное со временем, в дату. Если значение — число, оно означает время Unix в миллисекундах.
Полный список методов и их распределение по категориям см. в официальной документации Ninox.
Инструкции
var, if then else, for, switch, select where и т. д. — это инструкции.
В отличие от методов, тип возвращаемого значения инструкции зависит от содержащегося в ней кода. Например, следующий код вернёт массив чисел [1, 2]:
for i in range(1,3) do
i;
end;
