for (var k in dictionary) { var key:KeyType = KeyType(k); var value:ValType = ValType(dictionary[k]); // <-- lookup // do stuff }
Это то, что я использую для циклического прохождения записей в словаре. Как вы можете видеть на каждой итерации, я выполняю поиск в словаре. Есть ли более эффективный способ перебора словаря (при сохранении доступа к ключу)?
Итерация по ключам & значениям :
for (var k:Object in dictionary) { var value:ValType = dictionary[k]; var key:KeyType = k; }
Итерация по значениям более кратко:
for each (var value:ValType in dictionary) { }
В AS3 есть 3 различных цикла for, вы должны использовать тот, который лучше всего соответствует вашим потребностям.
for
Программисты тратят огромное количество времени на размышления или беспокоиться о скорости некритических частей своих программ, и эти попытки эффективности на самом деле имеют сильное негативное влияние когда отладка и обслуживание рассматриваются. Мы должны забыть о малая эффективность, скажем, в 97% случаев: преждевременная оптимизация это корень всего зла. Однако мы не должны упускать наши возможности в этом критическом 3%. Дональд Кнут
Программисты тратят огромное количество времени на размышления или беспокоиться о скорости некритических частей своих программ, и эти попытки эффективности на самом деле имеют сильное негативное влияние когда отладка и обслуживание рассматриваются. Мы должны забыть о малая эффективность, скажем, в 97% случаев: преждевременная оптимизация это корень всего зла. Однако мы не должны упускать наши возможности в этом критическом 3%.
Дональд Кнут