Podstawy języka Ninox

Język skryptowy Ninox służy do pisania formuł, przycisków i wyzwalaczy w Twoich bazach. Ta strona zbiera to, co warto wiedzieć, zanim napiszesz pierwsze linijki.

Ninox jest językiem typowanym i prekompilowanym. Oznacza to, że typy danych obsługiwane przez język są znane z góry, inaczej niż w językach takich jak JavaScript, które radzą sobie ze zmiennymi bez znajomości ich typów.

Jedną z głównych zalet Ninox jest to, że generowany kod jest wyjątkowo niezawodny, a usterki zdarzają się bardzo rzadko.

Dla informacji: skrypt Ninox jest przed wykonaniem kompilowany do JavaScriptu.

Kod zagnieżdżony i liniowy

Każda funkcja i każda instrukcja zwraca wartość, którą można bezpośrednio przekazać jako parametr do innej funkcji lub instrukcji:

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

Dzięki temu można przypisać do zmiennej cały zestaw zagnieżdżonego kodu:

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

Do b można też przypisać wynik bloku kodu liniowego ujętego w nawiasy:

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

Trzeba pamiętać, że w kodzie liniowym to ostatni wiersz zawsze decyduje o zwracanym typie i wartości. W tym przykładzie b będzie równe 10:

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

Taki blok zapisuje się w nawiasach, a nie między do i end, jak ciało pętli lub funkcji. Poniższy kod zostaje odrzucony już przy pisaniu („Oczekiwany symbol: as”):

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

do … end otwiera blok tylko po for … in … do, while … do lub function f(…) do. W każdym innym miejscu (na początku formuły, po :=, po then…) do zapowiada do as server, do as transaction…: Ninox oczekuje wtedy słowa as.

Uwaga

Wysłane przez API (/query) zapytanie, które zaczyna się od do bez as, zwraca null, bez żadnego komunikatu o błędzie. Pułapka pojawia się przy pisaniu zapytania testowego: (var n := 2; n) zwraca 2, do var n := 2; n end nie zwraca nic.

(Zmierzone przez API Ninox.)

Metody

Metody to funkcje, które przyjmują jeden lub więcej parametrów i zwracają wartość. Zarówno parametry, jak i wartość zwracana są z góry określone.

Niektóre metody mogą mieć kilka układów parametrów:

  • date(year, month, day)
    Zwraca wartość typu data.
  • date(myTimeValue)
    Zamienia podaną wartość związaną z czasem na wartość typu data. Jeśli wartość jest liczbą, oznacza czas uniksowy w milisekundach.

Pełną listę metod oraz ich podział na kategorie znajdą Państwo w oficjalnej dokumentacji Ninox.

Instrukcje

var, if then else, for, switch, select where itp. to instrukcje.

W odróżnieniu od metod typ zwracany przez instrukcję zależy od kodu, który ona zawiera. Na przykład poniższy kod zwróci tablicę liczb [1, 2]:

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