Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 26.03.2010, 20:54
Tr1te вне форума Посмотреть профиль Отправить личное сообщение для Tr1te Найти все сообщения от Tr1te
  № 1  
Ответить с цитированием
Tr1te
 
Аватар для Tr1te

Регистрация: Jun 2009
Сообщений: 461
Question Для чего задавать тип данных, при создании инстанса класса?

Чем отличается?
Код AS3:
var myClass_Provider=new myClass;
и
Код AS3:
var myClass_Provider:myClass=new myClass;

Старый 26.03.2010, 21:32
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 2  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
На сколько я понимаю, это нужно компилятору, работающему в strict mode.

Старый 26.03.2010, 23:37
expl вне форума Посмотреть профиль Отправить личное сообщение для expl Найти все сообщения от expl
  № 3  
Ответить с цитированием
expl

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
Если на AS3 этого не сделать - будет тип *, или Object - он мало того, что не проеряется компилятором - еще и работает медленне

Но вообще в природе существует механизм выявления типов компилятором
Например, если в haXe напишешь
Код AS3:
var myClass_Provider=new myClass();
то тип переменной будет именно myClass и проверяться комилятором будет, и даже флеш-девелоп автокомплит покажет (не всегда правда, под хакс он слабо заточен)
Говорят в C# тоже что-то похожее добавили (объявление переменной с ключевым словом var и автоопределением типа)

Но есть случаи, когда тип писать нужно, например, чтобы обрезать до интерфейса/более общего типа:
Код AS3:
var myClass_Provider:IProvider = new myClass();


Последний раз редактировалось expl; 26.03.2010 в 23:41.
Старый 27.03.2010, 00:20
Bgg вне форума Посмотреть профиль Отправить личное сообщение для Bgg Найти все сообщения от Bgg
  № 4  
Ответить с цитированием
Bgg
 
Аватар для Bgg

Регистрация: Jan 2009
Адрес: Петерсбург
Сообщений: 1,882
Пишу код в FD, если не писать тип, то придется вручную набирать публичные методы и свойства класса, лень.

Старый 27.03.2010, 02:10
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 5  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Bgg - expl про HaXe говорил. HaXe != AS
FD кстати делает кой-какое инвертирование типов для AS2... но там так, ерунда...
По поводу var в C# - угу, есть такое, но я не уверен в том, что это инвертация...
__________________
Hell is the possibility of sanity

Старый 27.03.2010, 10:33
mikhailk вне форума Посмотреть профиль Отправить личное сообщение для mikhailk Найти все сообщения от mikhailk
  № 6  
Ответить с цитированием
mikhailk
 
Аватар для mikhailk

Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
Не знаю, замедления я не заметил.
Однако, если не указывать тип явно, то в некоторых случаях компилятор выдаст ошибку, поскольку просто не найдет соответствующих объекту публичных методов.

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

Старый 27.03.2010, 11:37
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 7  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Цитата:
Не знаю, замедления я не заметил.
Разницу в скорости между пулей из пистолета и винтовки тоже не заметна, но она есть.

Цитата:
Кстати, иногда наблюдаю обратную картину, когда отказ от явного указания типа облегчает жизнь.
Это когда же?
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 27.03.2010, 12:39
mikhailk вне форума Посмотреть профиль Отправить личное сообщение для mikhailk Найти все сообщения от mikhailk
  № 8  
Ответить с цитированием
mikhailk
 
Аватар для mikhailk

Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
Например, некий обработчик получает на вход событие с данными.

Код AS3:
private function myProcessCompliteHandler(e:MyDataEvent) {
   var processResult = e.data.process.result;
}
Можно кинуть ему xml, а можно запихать в данные process = { "result" : "tru-la-la" }
Не вижу, что мы выиграем, установив для processResult конкретный тип.

Старый 27.03.2010, 13:18
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 9  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Выиграете то, что когда вы потом попробуете processResult.@foo вас встретит ошибка времени исполнения, а в вашем дурно пахнущем коде понять почему она случилась будет нереально изза таких вот "улучшений".
__________________
Hell is the possibility of sanity

Старый 27.03.2010, 13:21
Tr1te вне форума Посмотреть профиль Отправить личное сообщение для Tr1te Найти все сообщения от Tr1te
  № 10  
Ответить с цитированием
Tr1te
 
Аватар для Tr1te

Регистрация: Jun 2009
Сообщений: 461
Подводя итог, я так понял что все дело в замедлении работы с типом *.

Создать новую тему Ответ Часовой пояс GMT +4, время: 13:29.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 13:29.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.