Оглавление

Типы данных

Обратите внимание на то, что приложение может добавить специфические типы данных, обращайтесь к руководству приложения для более подробной информации.

void

void в действительности не является типом данных, больше похоже на отсутствие данных. Может быть использована для указания компилятору, что функция не возвращает данные.

bool

bool это логический тип с двумя возможными значениями: правда или ложь. Ключевые слова истинного и ложного константы, которые могут быть использованы в качестве таковых в выражениях.

integer

typemin valuemax value
int8 -128127
int16 -32,76832,767
int -2,147,483,6482,147,483,647
int64 -9,223,372,036,854,775,8089,223,372,036,854,775,807
uint8 0255
uint16065,535
uint 04,294,967,295
uint64018,446,744,073,709,551,615

Так как скриптовый движок был оптимизирован для 32 разрядных типов данных, использование меньшего варианта рекомендуется только для доступа к специфическим переменным. Для локальных переменных лучше использовать 32-битный вариант.

real

typerange of valuessmallest positive value maximum digits
float +/- 3.402823466e+38 1.175494351e-38 6
double +/- 1.7976931348623158e+308 2.2250738585072014e-308 15

Интересно: Реальное число может также иметь дополнительные значения положительной и отрицательной 0 или бесконечности, и NaN (Not-a-Number). NaN представлен 32 битным 0x7fc00000.

arrays

Можно объявить массив переменных добавлением [] к типу. При объявлении переменной с типом модификатор, тип модификатора влияет на тип все переменные в списке. Пример:
int[] a, b, c;

a, b, и c теперь массивы целых чисел.

При объявлении массива можно определить начальный размер массива указанием длины в качестве параметра конструктору. Элементы могут индивидуально инициализироваться указанием списка. Пример:

int[] a;           // Нулевой массив целых
int[] b(3);        // Массив целых из 3-х элементов
int[] c = {,3,4,}; // Массив целых из 4-х элементов, где второй и третий инициализированны

Доступ к элементу массива осуществляется по индексу. Индексы с нуля, т.е. диапазон допустимых индексов от 0 до длины - 1.

Массив имеет два полезных метода - length() (определяет длину) и resize() (изменяет размер).

Обьекты

Есть две возможности представить объект, ссылка и значение.

Значения располагаются на стеке и освобождаются, когда переменная выходит из области видимости.

Ссылки выделяются на куче, и могут пережить первоначальную переменную, если существует ссылка на другой экземпляр.

Хендлы

Хендл объекта - особый тип, который может использоваться для хранения ссылок на другие объекты. При вызове методов или свойств доступа к переменной, которая является хендлом, вы будете получать доступ к реальному объекту. Обратите внимание на то, что не инициализированный хендл является null.
obj o;
obj@ a;           // a инициалицирована с null
obj@ b = @o;      // b содержит ссылку на o
b.ModifyMe();     // Метод модифицирует оригинальный обьект 
if( a is null )   // Проверяем содержимое a
{
   @a = @b;        // Позволяем a ссылать на тоже, что и b
}

Не все типы позволяют использовать хендл. Ни один из примитивных типов не может иметь хендла. Возможность использования хендла определяется на этапе регистрации.

Рекомендуется:
Хендлы

Строки

Строки - специальный тип данных, которые могут быть использованы только если их поддерживают программные регистры. Они представляют собой массив байтов. Единственное ограничение - объем памяти, доступной на компьютере. Существуют два вида строковых констант поддерживается в языке AngelScript, нормальные двойные кавычки или одинарные кавычки, а также знак документации строк.

sequence> value description

\0 0 Ноль
\\ 92 Обратный слеш
\' 39 Апостроф
\" 34 Двойной апостроф
\n 10 Новая строка
\r 13 Возврат
\t 9 Таб
\xFF 0xFF Шестнадцатеричное число
\uFFFF 0xFFFF Шестнадцатеричное число
\UFFFFFFFF 0xFFFFFFFF Шестнадцатеричное число

string str1 = "Это строка с \"со слешами\".";
s string str2 = 'В одинарных кавычках можно использовать двойные "без слешей".';

Комментировать строки также можно с помощью тройных кавычек ("""ode>), ).

string str = """
блаблабла
блабла
бла
""";

Если более чем одна строка констант записываются в последовательности только с пробелами, компилятор объединит их в одну константу.

string str = "First line.\n"
             "Second line.\n"
             "Third line.\n";

Перевод - arroy.one@gmail.com. При копировании материалов указывайте ссылку на источник.mall>