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.
