![]() |
Для чего задавать тип данных, при создании инстанса класса?
Чем отличается?
Код AS3:
Код AS3:
|
На сколько я понимаю, это нужно компилятору, работающему в strict mode.
|
Если на AS3 этого не сделать - будет тип *, или Object - он мало того, что не проеряется компилятором - еще и работает медленне
Но вообще в природе существует механизм выявления типов компилятором Например, если в haXe напишешь Код AS3:
Говорят в C# тоже что-то похожее добавили (объявление переменной с ключевым словом var и автоопределением типа) Но есть случаи, когда тип писать нужно, например, чтобы обрезать до интерфейса/более общего типа: Код AS3:
|
Пишу код в FD, если не писать тип, то придется вручную набирать публичные методы и свойства класса, лень.
|
Bgg - expl про HaXe говорил. HaXe != AS
FD кстати делает кой-какое инвертирование типов для AS2... но там так, ерунда... По поводу var в C# - угу, есть такое, но я не уверен в том, что это инвертация... |
Не знаю, замедления я не заметил.
Однако, если не указывать тип явно, то в некоторых случаях компилятор выдаст ошибку, поскольку просто не найдет соответствующих объекту публичных методов. Кстати, иногда наблюдаю обратную картину, когда отказ от явного указания типа облегчает жизнь. Хотя это и не слишком корректно, пожалуй, с технологической точки зрения. |
Цитата:
Цитата:
|
Например, некий обработчик получает на вход событие с данными.
Код AS3:
Не вижу, что мы выиграем, установив для processResult конкретный тип. |
Выиграете то, что когда вы потом попробуете processResult.@foo вас встретит ошибка времени исполнения, а в вашем дурно пахнущем коде понять почему она случилась будет нереально изза таких вот "улучшений".
|
Подводя итог, я так понял что все дело в замедлении работы с типом *.
|
| Часовой пояс GMT +4, время: 15:54. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.