Przejdź do głównej zawartości

Zmienne lokalne


W treści wyrażeń można używać zmiennych lokalnych, zdefiniowanych słówkiem var.

Deklaruje się je przy pomocy następującej składni:

var x = f(a, b);

Typ zadeklarowanej w ten sposób zmiennej jest wyznaczany automatycznie - jest typu wyrażenia występującego po prawej stronie znaku przypisania =

Do zmiennych odwołujemy się później korzystając z nowego drzewa danych vars w następujący sposób:

f(a, vars::x)

Podejście takie eliminuje możliwość dwuznaczności - wiadomo, które elementy pochodzą z lokalnego drzewa nienazwanego, a które są zmiennymi.

Zmienne mogą być typu skalarnego (napis, liczba, data itp..) lub drzewiastego. Te ostatnie można przygotować przy pomocy wyrażenia mini-linq zwracającego listę rekordów utworzonych ad-hoc.

Przykład wyrażenia obliczającego średnią różnych pól z kilku różnie filtrowanych list:

var a= from Lista where warunek>100 select {a=pole1, b=pole2};
var b=from DrugaLista where warunek2>50 select {a=poleX, b=poleY};
var c=vars::a+vars::b;
max(vars::c\a)

Dla przykładu:

Używając danych z naszego drzewka możemy zbudować prosty score finansowy.

Oprócz dochodów var incomes zdefiniujmy sobie także wydatki var expenses, które różnią się tylko wartością pola OperationCode

Nasz score to będzie, ile pieniędzy, procentowo, odkłada nam się na koncie w jakimś analizowanym okresie.

Do zmiennych odwołujemy się przez drzewko vars::

(vars:: incomes - vars::expenses) / Balance

image

Zobacz również​

Tworzenie rekordu in-line

Brak wartości i specjalne wartości puste