AppScript является языком с динамической типизацией, поддерживает следующие типы данных:
Значение даты записывается в переменную через функцию stod().
Формат даты описывается, используя следующие соглашения:
d | день |
M | месяц |
y | год |
Например, dd.MM.yyyy
.
Допустимые операции (между операндами и операцией рекомендуется ставить пробелы):
+ | сложение c числом | println(stod(«23.03.09») + 2); |
- | вычитание даты из даты. Получаем кол-во дней. ( Внимание! Пробелы с двух сторон от знака обязательны(!).) | println(stod(«23.03.09»)-stod(«01.01.09»)); |
~ | конкатенация операндов как строковых | println(stod(«23.03.09»)~stod(«01.01.09»)); |
== | сравнение | println(stod(«23.03.09»)==stod(«01.01.09»)); |
<> ( != ) | сравнение | println(stod(«23.03.09»)!=stod(«01.01.09»)); |
< | сравнение | println(stod(«23.03.09»)<stod(«01.01.09»)); |
> | сравнение | println(stod(«23.03.09»)>stod(«01.01.09»)); |
Примеры:
<AppXML> var a = stod("23.03.09"); // используется формат даты, записанный в appxml.date-format атрибуте var b = stod("03.23.2009", "MM.dd.yyyy"); // указывается фактический формат, действует только на данную переменную. var c = stod("24.03.09"); // опять испольуется формат из appxml.date-format appXMLParameters()["date-format"] = "MM.dd.yyyy"; // меняем "на лету" формат даты var d = stod("03.25.09"); // теперь тоже используется формат из appxml.date-format, но уже измененный var e = stod("25.03.09", "dd.MM.yy"); // а теперь нужно указать что имеем ввиду println("a=" + a + ", b=" + b + ", c=" + c + ", d=" + d + ", e=" + e); println(d + 3); </AppXML>
Размерность массива может быть произвольной.
Элементы массива могут быть разнородными.
Допустимые операции (между операндами и операцией рекомендуется ставить пробелы):
+ | сложение | println([1, 2] + [3, 4]); |
* | умножение на число | println([1, 2] * 3); |
~ | конкатенация операндов как строковых | println([1, 2] ~ [3, 4]); |
[][{n}] | экспорт колонок | println([ [1, 2], [3, 4] ] [ ] [1]); |
== | сравнение содержимого | println([1, 2] == [1, 2]); |
<> ( != ) | сравнение содержимого | println([1, 2] != [1, 2]); |
< | сравнение длин | println(5.1 < 7.3); |
> | сравнение длин | println(5.1 > 7.3); |
Примеры:
<AppXML> var a = []; // пустой массив нулевой длины var a = array(); // тоже самое a[0] = 1; // теперь длина массива = 1 a[1] = "Hi";// теперь длина массива = 2 var b = [3, 5, "Много"]; var c = [3, 5, 7, ["A", "B, "F"], 9]; var a = [[1, 2], [3, 4], [5, 6]]; var b = a[][1]; // берем только вторую колонку </AppXML>
Ассоциативный массив (хэш).
Допустимые операции (между операндами и операцией рекомендуется ставить пробелы):
+ | сложение | println([1, 2] + [3, 4]); |
~ | конкатенация операндов как строковых | println([1, 2] ~ [3, 4]); |
== | сравнение содержимого | println([1, 2] == [1, 2]); |
<> ( != ) | сравнение содержимого | println([1, 2] != [1, 2]); |
< | сравнение длин | println(5.1 < 7.3); |
> | сравнение длин | println(5.1 > 7.3); |
Примеры:
<AppXML> var a = hash(); // пустой массив нулевой длины a["яблоко"] = "вкусно"; // теперь длина массива = 1 a["дыня"] = "очень вкусно"; // теперь длина массива = 2 a["vegetable"] = hash(); // вложенный хэш a["vegetable"]["salad"] = "good"; a["vegetable"]["potato"] = "very good"; a["vegetable"]["tomato sorts"] = [1, 2, 3]; println(a); </AppXML>
Ссылка на объект.
Допустимые операции: нет. Только работа с атрибутами.
Примеры:
<AppXML> <main> <window id="mainWindow" > <onCreated> var a = mainWindow; a.title = "Main"; mainWindow.title += " window"; </onCreated> </window> </main> </AppXML>
Строка вида nnn sss
, где nnn
- число, sss
- строка, отделенная от числа пробелом, выделена в отдельный тип только для удобства работы с данными из БД.
Поддержка ограничена функциями суммирования и функциями парсинга на части. Работа с этим типом ограничена работой с БД.
Допустимые операции: см. (функции работы с типом "сумма с валютой")
Примеры:
<AppXML> var a = "25 USD"; println("value=" + currencyValue(a)); println("currency name is " + currencyName(a)); </AppXML>
Специальное значение, означающее «отсутствие значения». null всегда меньше любого значения.
Допустимые операции (между операндами и операцией рекомендуется ставить пробелы):
== | сравнение | println(null == 5); |
<> ( != ) | сравнение содержимого | println(null != 5); |
< | сравнение длин | println(null < 5); |
> | сравнение длин | println(null > 5); |
Примеры:
<AppXML> var a = null; println(a); println(a > -100); </AppXML>