Показать сообщение отдельно
Старый 06.02.2013, 22:43
Dip52 вне форума Посмотреть профиль Отправить личное сообщение для Dip52 Найти все сообщения от Dip52
  № 8  
Ответить с цитированием
Dip52

Регистрация: Aug 2012
Сообщений: 297
Цитата:
Сообщение от KumoKairo Посмотреть сообщение
Dip52, да, все именно так

Таки сделайте лучше полноценный класс)
В таком случае у меня комплилятр ругается на создание модификатора управления доступом внутри функции.
Я сделаю, как вы говорите, но мне интересно, как это (в смысле функция внутри функции) будет выглядеть. Сейчас просто эту тему прохожу у Колина Мука.

Добавлено через 37 секунд
Цитата:
Сообщение от expl Посмотреть сообщение
Угу, по-крайней мере работают с теми же проблемами и с тем же захватом контекста, что и анонимки.


В C#, F#, Ocaml, Python, Java(совсем недавно) тоже есть анонимные функции(лямбды) и там это хорошо
Но:
1. В этих языках они чаще используются не чтобы обработать что-то асинхронно по месту, а чтобы лаконично завернуть функциональную обработку данных
2. В этих языках есть оптимизации лямбды (например по возможностьи несоздание второго экземпляра лямбды), либо проблемы с лямбдами меркнут на фоне общей тормознутости языка (как в Python)
3. Даже в Python запретили делать анонимки размером больше одного выражения
Потому что читабельность падает!

Почему анонимки в AS3 плохо:
- не первый раз здесь это говорю, но на одном проекте после истребления анонимок потребление памяти упало с 800 до 200 Mб. Вобщем, надо быть _очень_ аккуратным, чтобы ничего не потекло при использовании анонимок
- нет никаких оптимизаций - создаются при каждом упоминании, захватывают весь контекст, даже если не надо, не обрабатываются JIT-компилятором
- падает производительность - просто доступ к обычным переменным становиться медленнее в разы(!)
- читабельность ухудшается.
Ничего себе, такой большой разброс (800 - 200).