Informazioni generali

Ninox è un linguaggio tipizzato e precompilato. Significa che i tipi di dati trattati dal linguaggio sono noti in anticipo, a differenza di altri linguaggi come JavaScript, che possono gestire variabili senza conoscerne il tipo.

Uno dei grandi vantaggi di Ninox è che il codice prodotto è particolarmente affidabile: i malfunzionamenti sono rarissimi.

Per informazione, lo script Ninox viene compilato in JavaScript prima di essere eseguito.

Codice annidato e codice lineare

Ogni funzione o istruzione restituisce un valore che può essere passato direttamente come parametro a un'altra funzione o istruzione:

var a := format(now(), "DD/MM/YYYY");

È quindi possibile assegnare a una variabile un insieme di codice annidato:

var a := true;
var b := if a then "true" else "false";

È anche possibile assegnare a b il risultato di un blocco di codice lineare racchiuso tra parentesi:

var b := (
    var a := true;
    if a then "true" else "false" end
);

È importante tenere presente che, nel caso del codice lineare, è sempre l'ultima riga a determinare il tipo e il valore restituiti. In questo esempio b sarà uguale a 10:

var b := (
    var a := true;
    if a then "true" else "false" end;
    10
);

Metodi

I metodi sono funzioni che accettano uno o più parametri e restituiscono un valore. Sia i parametri sia il valore restituito sono predefiniti.

Alcuni metodi ammettono più configurazioni di parametri:

  • date(year, month, day)
    Restituisce un valore di tipo data.
  • date(myTimeValue)
    Converte in data un valore legato al tempo. Se il valore è un numero, rappresenta il tempo Unix in millisecondi.

Consultate la documentazione ufficiale di Ninox per l'elenco completo dei metodi e per la loro classificazione per categoria.

Istruzioni

var, if then else, for, switch, select where, ecc. sono istruzioni.

A differenza dei metodi, il tipo restituito dalle istruzioni dipende dal codice che contengono. Per esempio, il codice seguente restituirà un array di numeri [1, 2]:

for i in range(1,3) do
  i;
end;