Общие сведения

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;