Руководство по actionscript. часть 1, стр. 141

Выражение as тип

В приведенном коде выражение представляет любое выражение, а тип — любой класс или интерфейс (тип не должен принимать значения undefined или null). Оператор as возвращает значение выражения выражение, если указанное выражение принадлежит указанному типу тип, в противном случае возвращается значение null.

Например, в следующем коде результат выражения (meal as Apple) идентичен результату операции приведения типов Apple (meal):

var meal:Food = new Apple( ); (meal as Apple).hasWorm( );

В следующем коде оператор as используется для «приведения» объекта Array к типу данных Array с тем, чтобы данный объект можно было присвоить переменной типа Array.

public function output (msg:Object):void { if (msg is String) { trace(msg);

}

if (msg is Array) { var arr:Array = msg as Array: // Приведение к типу Array

trace(arr. join(«\n»));

Следующий код демонстрирует результат передачи тестового объекта Array в метод output ( ):

var numbers:Array = [1,2,3] output(numbers):

// Вывод:

1

2

3

Преобразование в примитивные типы

В предыдущем разделе рассказывалось, что если выражение приводится к примитивному типу, к которому оно не принадлежит, то его значение будет преобразовано в указанный тип. Например, рассмотрим следующий код, который выполняет приведение объекта Date к примитивному типу данных Boolean:

Boolean(new Date( ))

Поскольку тип данных Boolean является примитивным типом, а объект Date не принадлежит типу Boolean, среда выполнения Flash преобразует значение объекта Date в тип Boolean. Результатом данного преобразования будет являться значение true типа Boolean.

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

I Операция приведения типов может преобразовать любое значение в конкретный при-

ч?’ 4 , митивный тип.

_ Щ’-

Например, следующий код преобразует число с плавающей точкой (с дробной частью) в целое число (без дробной части):

int(4.93)

Результатом этой операции приведения типов является целое число 4. Подобным образом следующий код преобразует значение true типа Boolean в целое число 1, а значение false типа Boolean — в целое число 0:

int(true): // Возвращает 1 int(false); // Возвращает О

Такая методика может применяться для уменьшения размера передаваемых на сервер данных, включающих ряд значений типа Boolean.

В табл. 8.1 представлены результаты преобразования различных типов данных в тип Number.

Таблица 8.1. Преобразование в тип Number

Исходные данные Результат после преобразования

undefined NaN (специальное числовое значение «Не число» (Not a Number), представляющее некорректные числовые данные)

Исходные данные Результат после преобразования

null 0

int То же число

uint То же число

Boolean 1, если исходным значением является true; 0# если исходным значением является false

Numeric в строковом представлении Эквивалентное числовое значение, если строка состоит только из цифр десятичной или шестнадцатеричной систем счислений, пробела, экспоненты, десятичной точки, знаков + или — (например, строка («-L485e2″) превратится в число -148.5)

Пустая строка 0

«Бесконечность» Infinity

«Минус бесконечность» — Infinity

Другие строки NaN

Объект NaN

В табл. 8.2 представлены результаты преобразования различных типов данных в тип int.

Таблица 8.2. Преобразование к типу int

Исходные данные Результат после преобразования

undefined 0

null 0

Number или uint Целое число в диапазоне от -231 до 231-1; значения, превышающие диапазон представления, включаются в указанный диапазон с помощью алгоритма, описанного в разд. 9.5 третьей редакции стандарта ЕСМА-262

Boolean 1, если исходным значением является true; 0, если исходным значением является false

Numeric в строковом представлении Эквивалентное числовое значение, преобразованное в целочисленный знаковый формат

Пустая строка 0

«Бесконечность» 0

«Минус бесконечность» 0

Другие строки 0

Объект 0

В табл. 8.3 представлены результаты преобразования различных типов данных в тип uint.

Таблица 8.3. Преобразование в тип uint

Исходные данные Результат после преобразования

undefined 0

null 0

Number или int Целое число в диапазоне от 0 до 231-1; значения, превышающие диапазон представления, включаются в указанный диапазон с помощью алгоритма, описанного в разд. 9.6 третьей редакции стандарта ЕСМА-262

Продолжение ^

196 Глава 8. Типы данных и проверка типов

Таблица 8.3 (иродо. г/ксммс)

Исходные данные Результат после преобразования

Boolean 1, если исходным значением является true; 0, если исходным значением является false

Numeric в строковом представлении Эквивалентное числовое значение, преобразованное в целочисленный беззнаковый формат

Пустая строка 0

«Бесконечность» 0

«Минус бесконечность» 0

Другие строки 0

Объект 0

В табл. 8.4 представлены результаты преобразования различных типов данных в тип String.

Таблица 8.4. Преобразование в тип String

Исходные данные Результат после преобразования

undefined «undefined»

null «null»

Boolean «true», если исходным значением является true; «false», если исходным значением является false

NaN «NaN»

0 «0″

«Бесконечность» «Infinity»

«Минус бесконечность» «-Infinity»

Другое числовое значение Строковое представление указанного числа. Например, число 944.345 превратится в строку «944.345″

Объект Значение, полученное в результате вызова метода toString() над объектом. По умолчанию метод объекта toString() возвращает строку «[object имяКласса]«, где имяКласса представляет класс объекта. Метод toString() может быть переопределен для получения более полезной информации. Например, метод toString() объекта Date возвращает время в удобочитаемом формате наподобие «Sun May 14 11:38:10 EDT 2000″, а метод toString() объекта Array возвращает список элементов массива, разделенных запятыми

В табл. 8.5 представлены результаты преобразования различных типов данных в тип Boolean.

Таблица 8.5. Преобразование в тип Boolean

Исходные данные Результат после преобразования

undefined false

null false

NaN false

0 false

Infinity true

-Infinity true

Другое числовое значение true

Непустая строка true

Исходные данные Результат после преобразования

Пустая строка («») false

Объект true

Значения переменных по умолчанию

Когда переменная объявлена без аннотации типа и без указания исходного значения, в качестве исходного значения этой переменной автоматически присваивается значение undefined (единственное значение типа данных void). Когда переменная объявлена с аннотацией типа, но без указания исходного значения, в качестве ее исходного значения автоматически присваивается значение по умолчанию, соответствующее указанному типу данных.

google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru

Оставить комментарий

Вы должны авторизоваться для отправки комментария.

Полезные ссылки
Случайные записи
  • 18.05.2010">Самоучитель по креативному веб-дизайну. Книга 2, стр.90
  • 02.03.2011">Руководство по actionscript. часть 5, стр. 094
  • 11.05.2010">Самоучитель по креативному веб-дизайну. Книга 1, стр.43
  • 18.05.2010">Самоучитель по креативному веб-дизайну. Книга 2, стр.62
  • 22.03.2011">Руководство по actionscript. часть 2, стр. 013
  • 10.05.2010">Самоучитель по креативному веб-дизайну. Книга 1, стр.121
  • 18.05.2010">Самоучитель по креативному веб-дизайну. Книга 2, стр.96
  • 18.05.2010">Самоучитель по креативному веб-дизайну. Книга 2, стр.87
  • 03.06.2010">Самоучитель по креативному веб-дизайну. Книга 3, стр.55
  • 19.03.2011">Руководство по actionscript. часть 2, стр. 093
  • 13.06.2010">Самоучитель по креативному веб-дизайну. Книга 4, стр.100
  • 02.06.2010">Самоучитель по креативному веб-дизайну. Книга 3, стр.115
  • 18.05.2010">Самоучитель по креативному веб-дизайну. Книга 2, стр.75
  • 12.03.2011">Руководство по actionscript. часть 3, стр. 129
  • 03.10.2010">Как сделать матовую кожу?
Опрос

Какие цвета вы предпочитаете?

View Results

Loading ... Loading ...