Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 10.03.2016, 22:54
Tails вне форума Посмотреть профиль Отправить личное сообщение для Tails Найти все сообщения от Tails
  № 41  
Ответить с цитированием
Tails
 
Аватар для Tails

блогер
Регистрация: Dec 2008
Адрес: г. Чебоксары
Сообщений: 2,259
Записей в блоге: 6
Нужно использовать:
Код AS3:
i = collection.length;
while(i--){
    collection[i];
}
__________________
Дети не должны знать о своих родителях

Старый 10.03.2016, 23:45
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 42  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
В подавляющем большинстве случаев, все равно как обходить массив. Если уж дело уперлось в скорость обхода массива, то лучше поменять решение на такое, которое исключит обход.
У for each есть другой момент, если какой-нибудь коллега с ректальной дисплазией верхних конечностей, влупит массиву динамическое свойство, то его значение также будет перечислено.
__________________
משיח לא בא
משיח גם לא מטלפן

Старый 11.03.2016, 22:46
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 43  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Ну не скажи. Вот ты постарался, отсортировал массив и принялся за for each in, ожидая профита. Но иногда профит покидает.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 13.03.2016, 14:09
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 44  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Ммм... о каком профите речь?
__________________
משיח לא בא
משיח גם לא מטלפן

Старый 14.03.2016, 20:02
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 45  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Например, есть необходимость обращаться к значениям массива строго по порядку индексов.
Я немного приустал в этом топе мысли излагать. Пожалуй, это последнее мое сообщение в нем.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 14.03.2016, 20:11
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 46  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Ну так я за тебя
for each не может гарантировать порядок, как минимум для Array. Мой комментарий был о том, что рассматривать варианты обхода массива как "оптимизацию" (в ущерб читаемости, кстати) гиблое дело.
__________________
משיח לא בא
משיח גם לא מטלפן

Старый 15.03.2016, 14:47
СлаваRa вне форума Посмотреть профиль Отправить личное сообщение для СлаваRa Найти все сообщения от СлаваRa
  № 47  
Ответить с цитированием
СлаваRa
 
Аватар для СлаваRa

блогер
Регистрация: Feb 2008
Адрес: http://playtika.com
Сообщений: 1,119
Записей в блоге: 5
Отправить сообщение для СлаваRa с помощью ICQ Отправить сообщение для СлаваRa с помощью Skype™
имеем код:
Цитата:
var a:Array = [];
for each(var item:int in a) {
}
компилируем, получаем ABC
Код:
maxStack:2 localCount:5 initScopeDepth:9 maxScopeDepth:10
      getlocal0
      pushscope
      pushundefined
      coerce_a
      setlocal2
      getlocal0
      constructsuper  (0)
      newarray        [0]
      coerce          :Array
      setlocal1
      pushbyte        0
      setlocal3
      getlocal1
      coerce_a
      setlocal        4
      jump            L0

  L1: label
      getlocal        4
      getlocal3
      nextvalue
      coerce_a
      setlocal2
  L0: hasnext2        4 3
      iftrue          L1

      kill            4
      kill            3
      returnvoid
  0 Extras
  0 Traits Entries
видим инструкцию nextvalue, читаем спеку:
Цитата:
nextvalue
Operation
Get the name of the next property when iterating over an object.
Format
nextvalue
Forms
nextvalue = 35(0x23)
Stack
…, obj, index => …, value
Description
index and obj are popped off of the stack. index must be of type int. Get the value of the
property that is at position index + 1 on the object obj, and pushes it onto the stack.
Notes
Index will usually be the result of executing hasnext on obj.
Array и Vector - объекты свойства которых индексированы, @alatar @dimarik, объясните мне пожалуйста, как возможна ситуация, чтобы проход осуществился по неупорядоченным индексам не с нуля, пожалуйста, я хочу понять где я не прав в своих убеждениях.
__________________
местонахождение


Последний раз редактировалось СлаваRa; 15.03.2016 в 15:28.
Старый 15.03.2016, 15:13
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 48  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Как я уже писал, Array динамический объект... если кто-нибудь добавит ему свойство, его значение также будет перечислено. С Vector такое не пройдет. К тому же, если у Object имена свойств будут являться числами, порядок перечисления значений через for each тоже не будет меняться (видимо это было необходимо для реализации Array).
__________________
משיח לא בא
משיח גם לא מטלפן

Старый 15.03.2016, 15:27
СлаваRa вне форума Посмотреть профиль Отправить личное сообщение для СлаваRa Найти все сообщения от СлаваRa
  № 49  
Ответить с цитированием
СлаваRa
 
Аватар для СлаваRa

блогер
Регистрация: Feb 2008
Адрес: http://playtika.com
Сообщений: 1,119
Записей в блоге: 5
Отправить сообщение для СлаваRa с помощью ICQ Отправить сообщение для СлаваRa с помощью Skype™
Ну если кто-то хочет сделать array['field'] = 10, флаг ему в руки, я не хотел этот пример рассматривать))
(я еще в начале разговора уточнил, что мое заявление не относится к динамике)
__________________
местонахождение

Старый 15.03.2016, 16:03
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 50  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Ну вот тебе другой пример: Array не является плотным массивом, при обходе через for each будут перечислены только явно заданные свойства, в отличие от for и while.
__________________
משיח לא בא
משיח גם לא מטלפן

Создать новую тему Ответ Часовой пояс GMT +4, время: 02:09.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 02:09.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.