Показать сообщение отдельно
Старый 24.05.2012, 13:28
expl вне форума Посмотреть профиль Отправить личное сообщение для expl Найти все сообщения от expl
  № 2  
Ответить с цитированием
expl

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
1.
Код AS3:
switch (a.b.c.d)
{
   case 20:
   case 30:
   case 0:
      ...
      break;
}
2. Самый вменяемый способ, т.к. документирует код и уменьшает копипасту.
Тёмная сторона - потеря производительности, возможна потеря нити рассуждений при чтении кода, т.к. приходится скроллить на функцию (но обычно, если тяжело читать условия и код не критичен - выношу их в функции):
Код AS3:
function isNeeded(a:int):Boolean
{
   return a == 20 || a == 30 || a == 0;
}
 
if (isNeeded(a.b.c.d))
{
    ...
}
3. Относительно наглядно, но крайне невыгодно по производительности. Т.е. такой метод можно использовать только в тестах (где все средства хороши), а в коде по сравнению с выносом переменной - выгода от наглядности слабовата, а потери производительности высоки:
Код AS3:
 if([20, 30, 0].indexOf(a.b.c.d) != -1)
4. А вообще единственный косяк метода с переменной - это то что она будет мешаться во всей функции (из-за дурацкого подхода в AS3 к областям видимости переменных). А так не знаю, чем он вам не нравится.


Последний раз редактировалось expl; 24.05.2012 в 13:32.