Conceptes bàsics del llenguatge de Ninox

El llenguatge de script de Ninox serveix per escriure les fórmules, els botons i els activadors de les teves bases de dades. Aquesta pàgina recull el que cal saber abans d'escriure les primeres línies.

Ninox és un llenguatge tipat i precompilat. Això vol dir que els tipus de dades que tracta el llenguatge es coneixen per endavant, a diferència d'altres llenguatges com JavaScript, que poden tractar variables sense conèixer-ne el tipus.

Un dels grans avantatges de Ninox és que el codi que genera és especialment fiable, i els funcionaments defectuosos només es produeixen en casos molt comptats.

Per a la vostra informació, l'script de Ninox es compila a JavaScript abans d'executar-se.

Codi imbricat i codi lineal

Cada funció o instrucció retorna un valor que es pot passar directament com a paràmetre a una altra funció o instrucció:

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

Així doncs, es pot assignar un conjunt de codi imbricat a una variable:

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

També es pot assignar a b el resultat d'un bloc de codi lineal tancat entre parèntesis:

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

És important tenir present que, en el cas del codi lineal, la darrera línia sempre determina el tipus i el valor retornats. En aquest exemple, b valdrà 10:

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

Aquest bloc s'escriu entre parèntesis, i no entre do i end com el cos d'un bucle o d'una funció. El codi següent es rebutja tan bon punt s'escriu («Símbol esperat: as»):

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

do … end només obre un bloc després de for … in … do, while … do o function f(…) do. A qualsevol altre lloc (al començament d'una fórmula, després de :=, després de then…), do anuncia do as server, do as transaction…: Ninox espera aleshores la paraula as.

Atenció

Enviada mitjançant l'API (/query), una consulta que comença per do sense as retorna null, sense cap missatge d'error. El parany apareix en escriure una consulta de prova: (var n := 2; n) retorna 2, do var n := 2; n end no retorna res.

(Mesurat mitjançant l'API de Ninox.)

Mètodes

Els mètodes són funcions que prenen un o més paràmetres i retornen un valor. Tant els paràmetres com el valor retornat estan predefinits.

Alguns mètodes poden tenir diverses configuracions de paràmetres:

  • date(year, month, day)
    Retorna un valor de tipus data.
  • date(myTimeValue)
    Converteix en data un valor donat relacionat amb el temps. Si el valor és un nombre, representa el temps Unix en mil·lisegons.

Consulteu la documentació oficial de Ninox per obtenir la llista completa de mètodes i la seva classificació per categories.

Instruccions

var, if then else, for, switch, select where, etc., són instruccions.

A diferència dels mètodes, els tipus de retorn de les instruccions depenen del codi que contenen. Per exemple, el codi següent retornarà una taula de nombres [1, 2]:

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