![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Доброго времени суток.
Возник вопрос адекватности применеия "упрощенного" оператора ветвления: в случае, когда это ветвление не полное. Приходится писать или Собственно вопрос - насколько оправдано вообще использовать этот оператор для неполного ветвления с точки зрения эстетики кода и адекватности/скорости/производительности выполнения? |
|
|||||
|
вполне оправдано, заменяет кучу строк условий, более четабелен во многих случаях; что касаеться производительности - проведите тест
|
|
|||||
|
Тут дело не в оправданности, а в читабельности, стиле и конвенции команды, в которой вы участвуете. Лично я отдал бы предпочтение if'у.
Скоуп if'а является и скоупом всего метода, тут в as3 с этим проще, поэтому ничего не мешает записать После компиляции some перемещается в хедер метода (подправьте терминологию) и инициируется по умолчанию null'ом.
__________________
тут я |
|
|||||
|
Ну если нужно сделать что-то, что не умещается в одну строчку, то тут лучше с if, не спорю)
Просто этим расширенным оператором очень удобно избавляться от ошибок удаления несуществущих дисплей объектов, например this.graphicСontainer.contains(graphicElement) ? this.graphicСontainer.removeChild(graphicElement) : null; Просто на забугорных ресурсах ничего не нашел по этому поводу и в книжках тоже не встречал, если память не изменяет |
|
|||||
|
Оператор просто используется не по назначению. Он возвращает определенное значение. Здесь лучше использовать вместо этой громоздкой длинной конструкции вот такую:
Во-первых, contains пробегает по всем вложенностям. Во-вторых такая конструкция ничего не возвращает и понятна глазу.
__________________
тут я |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Цитата:
?
__________________
Reality.getBounds(this); |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Возможно, это потому что Вы еще не воспринимаете тернарный оператор как возвращающий значение, и затычки вроде null Вас не смущают. Я, например, спотыкаюсь мозгом на таких записях. Требование обязательного наличия правой части, как и требование того, что части могут содержать только одно выражение, исходит именно из необходимости вернуть значение. Таково предназначение этого оператора — выбрать значение, а не действие.
Нормальное применение тернарного оператора:
__________________
Reality.getBounds(this); |
![]() |
![]() |
Часовой пояс GMT +4, время: 02:57. |
|
|
« Предыдущая тема | Следующая тема » |
|
|