Типы данных ActionScript

На этом уроке по ActionScript мы рассмотрим 5 вопросов:

  1. Типы данных. Общая информация
  2. О типах данных в ActionScript
  3. Декларация типов данных
  4. Нетипизированные данные
  5. Изменение типа данных

ActionScript 3 – это язык программирования, который требует обязательной записи типа данных ActionScript при создании переменных. Это значит, что он распознает какой тип данных присвоен переменной и Вы должны следовать этому подходу, программируя на этом языке.

Типы данных. Общая информация

Языки программирования, базы данных и другие компьютерные программы должны различать типы данных с которыми они работают. Если тип данных не определен программой, то в таком случае компьютер обычно делает ошибку (в работе с AS3 наиболее часто используемый способ проверки — метод trace ActionScript). Например, если у Вас на компьютере установлена операционная система Microsoft Windows, и Вы сохранили серию файлов с именами начинающимися с цифры, то они будут отсортированы некорректно. После файла с именем 1.png последует 10.png, а не 2.png. Это происходит потому, что Windows воспринимает имена файлов не как цифры, а как буквы. Т.е. имена файлов по своему типу являются строками, а не числами. В этом случае каждая буква и цифра (которая в данном случае не является числом!) имеет свой номер в общем ряду всех букв и цифр. Поэтому все имена файлов, начинающиеся с 1 (1, 11, 15, 124, 10345 и т.д.) всегда будут показываться раньше чем файлы начинающиеся с цифры 2.

Подобные проблемы могут быть легко решены при помощи типов данных. Если мы можем сообщить программе, что определенная часть кода по своему типу является числом, то и программа будет обрабатывать его соответствующим образом: сортировать, производить необходимые математические операции и пр.

О типах данных в ActionScript

Основные типы данных Actionscript

Существует 3 основных типа данных ActionScript: Null, void и Object.

Null (ноль) может иметь единственное значение – отсутствие значения. Это означает, что у переменной нет значения. При этом, заметьте, что null – это не 0 и не пустая строка, т.к. последние имеют определенное значение.

Подобно типу данных Null, void (неопределенный) имеет единственное значение: undefined (значение не определено). Чаще всего Вы будете встречаться с данным типом, работая с функциями, которые не возвращают никакого значения. Мы обсудим этот вопрос в деталях в соответствующем уроке.

Тип данных Object (объект) включает в себя все экземпляры всех классов, в том числе и уже встроенных в ActionScript. Во время наших уроков Вы увидите множество примеров когда будут создаваться экземпляры именно таких объектов.

В дополнение к вышеперечисленным основным типам данных Actionscript, распознается как тип данных любой класс, как изначально встроенный в него, так и созданный Вами. Поэтому, как будет показано далее, Вы можете присваивать переменным такие типы данных как String, Number, Array и т.д. Это в свою очередь означает, Вы создаете переменные, являющиеся экземплярами классов String, Number и Array соответственно.

Простые типы данных

Переменной может быть присвоен простой тип данных. В AS3 (ActionScript 3) – это String (строка), Boolean (булевый тип), Number (число), int (целое число) и uint (положительное целое число).

Строки (strings) – это буквы, слова, предложения, куски текста, которые могут содержать в себе как буквы так и цифры и пробелы. Строки всегда берутся в кавычки! Это их особенность и отличие от других типов данных при записи. Как объединять строки будет рассказано в отдельном уроке «Объединение (конкатенация) строк».

Булевый тип данный (boolean) назван так в честь физика Джоржа Буля. Переменной такого типа может быть присвоено только два значения: либо true (1) либо false (0). Как и в других языках программирования в ActionScript значение true будет соответствовать любому числу отличному от нуля, любой непустой строке.

Тип данных Number для работы с любыми числовыми значениями (не строками!). Он содержит в себе 2 подтипа: int (integer) – целое число, которое может как положительным так и отрицательным, и uint (unsigned integer) – только положительное целое число, 0 включительно.

Сложные типы данных

Иногда Вам будет необходимо сохранить в переменной несколько значений, т.е. не одно. Это можно сделать с помощью сложных типов данных. Один из примеров такого типа – Array (массив), работу с которым мы рассмотрим в серии уроков «Создание массива ActionScript», «Добавление и удаление элементов в массив ActionScript» и др.

Декларация типа данных

Назначение типа данных ActionScript переменной происходит во время декларации этой переменной. После имени переменной Вы ставите двоеточие и сразу после пишите тип данных. В большинстве случаев в АctionScript (но не всегда) типом данных будет являться какой-либо класс и поэтому его имя должно начинаться с заглавной буквы. Например, Вы решили создать переменную myName и присвоить ей тип данных String. В результате у Вас должно получиться следующее:

var myName:String;

Нетипизированные данные

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

var myData;

Однако, поступая так Вы можете оставить других программистов, которые возможно будут работать с Вашим кодом, в недоумении: сделали ли Вы это умышленно или это ошибка. Поэтому, если Вы действительно хотите не присваивать переменной никакой тип, то Вы должны записать это с помощью звездочки * (астериск). Например:

var myData:*;

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

Переменнные, которым присвоен определенный тип данных должны содержать в себе только данные этого типа. Поэтому если Вы будете следовать этому правилу, в дальнейшем Вам будет легко избежать ошибок в коде и исправлять их если таковые возникнут. Каждый раз Вы будете получать сообщение об ошибке с указание номера строки, что очень легко исправить. Если же какая-либо переменная нетипизирована, то сообщения не поступит, но программа работать не будет. Найти где ошибка будет очень сложно.

Изменение типа данных

Если Вам нужно изменить тип данных Actionscript переменной, то это можно сделать с помощью метода называемого кастингом (casting). Вы просто записываете новый тип данных, а затем в скобках имя переменной. Например:

var myName:String = "Valeriy";

  Boolean(myName);

В этом примере переменной myName назначен тип данных String и присвоено значение Valeriy. Затем мы меняем её тип на Boolean.

Здесь важно отметить, что подобная операция по смене типа данных ActionScript не всегда бывает успешна. В показанном выше примере проблем с обработкой кода не будет. Теперь значение переменной myName будет соответствовать true. Мы уже знаем, что любая непустая строка будет приравниваться к true когда речь идет о булевом типе (boolean). Однако, следующий пример проиллюстрирует нам определенные трудности которые иногда возникают во время кастинга.

var myName:String = "Valeriy";

  Number(myName);

После этой операции значение переменной myName будет равно NaN (Not a Number) – не число! Т.е. совсем не то, что мы ожидали. Это произошло потому, что строка, состоящая из букв не может быть преобразована в число. Обратная же операция возможна, потому что строки могут содержать в себе числа.

var sum:Number = 356;

  String(sum);