Var i let

Do zadeklarowania zmiennej można użyć zarówno var, jak i let. Inaczej niż w JavaScripcie, w Ninox nie ma między let a var żadnej różnicy zasięgu.

Typ zmiennej zależy od typu przypisanej do niej wartości:

var t := "my text";
var b := false;
var n := 10;

Zmienną można zadeklarować kilkakrotnie w tym samym kodzie. Zachowuje ona wtedy przypisany typ i wartość aż do miejsca nowej deklaracji:

var b := true;
dialog("Message 1", "Value of b: " + b, ["ok"]);
var b := 12;
dialog("Message 2", "Value of b: " + b, ["ok"]);

Mylenie nazw zmiennych z identyfikatorami tabel i pól

Ninox zapisuje swój kod w postaci nieco innej niż ta wyświetlana na ekranie. Konkretnie: nazwy pól i tabel są zastępowane ich identyfikatorami, czyli literami.

Na przykład poniższy skrypt, obliczający sumę sprzedanych pozycji:

sum('Invoice Items'.Total)

zostanie zapisany w kodzie systemowym tak, gdzie D jest identyfikatorem tabeli 'Invoice Items', a E — identyfikatorem pola Total:

sum(D.E)

W tym kontekście utworzenie zmiennej D może wprowadzić kompilator w błąd, ponieważ w poniższym kodzie systemowym nie byłoby jasne, czy D.E odnosi się do tabeli, czy do wcześniej zadeklarowanej zmiennej D:

(var D := "hello"; sum(D.E))

Aby uniknąć takich pomyłek, zmiennym należy nadawać nazwy, które raczej nie pokryją się z identyfikatorami ani nazwami tabel i pól. Właśnie dlatego zmienne często noszą krótkie nazwy pisane małymi literami (np. a, b czy c) — żeby nie pomylić ich z identyfikatorami.