Типы данных

AppScript является языком с динамической типизацией, поддерживает следующие типы данных:

  • boolean
  • integer и double
  • string
  • date
  • array
  • hash array
  • object (pointer to object)
  • currency («сумма с валютой»)
  • null

date

Значение даты записывается в переменную через функцию 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>

array

Размерность массива может быть произвольной.
Элементы массива могут быть разнородными.

Допустимые операции (между операндами и операцией рекомендуется ставить пробелы):

+ сложение 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>

hash-array

Ассоциативный массив (хэш).

Допустимые операции (между операндами и операцией рекомендуется ставить пробелы):

+ сложение 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>

pointer to object

Ссылка на объект.

Допустимые операции: нет. Только работа с атрибутами.

Примеры:

<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

Специальное значение, означающее «отсутствие значения». null всегда меньше любого значения.

Допустимые операции (между операндами и операцией рекомендуется ставить пробелы):

== сравнение println(null == 5);
<> ( != ) сравнение содержимого println(null != 5);
< сравнение длин println(null < 5);
> сравнение длин println(null > 5);

Примеры:

<AppXML>
	var a = null;
	println(a);
	println(a > -100);
</AppXML>
 
script/data_type.txt · Последние изменения: 18/05/2013 12:39 — admin
 
Recent changes RSS feed Valid XHTML 1.0 Valid CSS